मैं ऑटोमैपर का उपयोग कर रहा हूं। मेरे पास दो वर्ग हैं: एकल संपत्ति के साथ टाइपए; टाइपब दो गुणों के साथ, उनमें से एक निजी सेटर है और इस संपत्ति के लिए मूल्य कन्स्ट्रक्टर के माध्यम से पारित किया जाता है। टाइप बी में कोई डिफ़ॉल्ट कन्स्ट्रक्टर नहीं है।ऑटोमैपर मानचित्र पर संदर्भ मान कैसे पास करें?
प्रश्न: टाइपए को टाइपब में परिवर्तित करने के लिए ऑटोमैपर को कॉन्फ़िगर करना संभव है।
public class TypeA
{
public string Property1 { get; set; }
}
public class TypeB
{
public TypeB(int contextId)
{ ContextId = contextId; }
public string Property1 { get; set; }
public int ContextId { get; private set; }
}
public class Context
{
private int _id;
public void SomeMethod()
{
TypeA instanceOfA = new TypeA() { Property1 = "Some string" };
// How to configure Automapper so, that it uses constructor of TypeB
// and passes "_id" field value into this constructor?
// Not work, since "contextId" must be passed to constructor of TypeB
TypeB instanceOfB = Mapper.Map<TypeB>(instanceOfA);
// Goal is to create folowing object
instanceOfB = new TypeB(_id) { Property1 = instanceOfA.Property1 };
}
}
चूंकि मेरे पास अलग-अलग जगह पर ऑटोमैपर की सभी कॉन्फ़िगरेशन हैं, इसलिए मैं कनवर्ट करने से पहले नए मानचित्र बनाना नहीं चाहता हूं। वैकल्पिक समाधान आयन मुझे क्या चाहिए। आपके उत्तर के लिए धन्यवाद। – Andris