نماذج مجال مسطحات السيارات ولكن هل تفعل العكس؟ إن لم يكن، ماذا يفعل؟

StackOverflow https://stackoverflow.com/questions/1175875

سؤال

لقد كنت أقرأ عن Automapper بسبب استجابة لأحد أسئلتي السابقة هنا.

تقول أن شركة Automapper Flattens نماذج المجال المعقدة، لكنني بحاجة إلى شيء يفعل العكس. أحتاج إلى الأسلاك طرازات رأيي (نماذج المجال المسطحة) إلى نماذج المجال المعقدة حتى أتمكن من تحويل نموذج عرض بسرعة إلى نموذج مجال.

هل هناك أي شيء مشابه لشركة Automapper التي تأخذ نموذج عرض وتجعلها في نموذج مجال معقد؟

هل كانت مفيدة؟

المحلول

ليس حقا، لأنه يجب أن تكون تقليدية للغاية لتكون مفيدة. من السهل أن تكون الأنماط عند التسطيح، ولكن في الاتجاه الآخر "... فقط الكثير من المنطق المخصص.

نصائح أخرى

أنت تفعل!. يمكنك إنشاء طريقة MaptoModel حيث تقوم بترميز اليد اليمنى / اليد اليمنى ومزامنتين معا.

public MyModel MapToModel(MyViewModelForm vmf)
{
  //new up MyModel model;
  model.foo = vmf.foo;

  return model;
}

إذا ترميز التطبيقات أنفسهم، فماذا نفعل بالضبط من أجل لقمة العيش ...؟

ال valueinjecter. يفعل ذلك، ومن السهل جدا استخدام:

//flatenning
personDto.InjectFrom<FlatValueInjection>(person);

//unflattening
person.InjectFrom<UnflatValueInjection>(personDto);

و

//this is just mapping without flattening/unflattening
foo.InjectFrom(bar)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top