किसी समस्या का सामना ive के प्रकार के aguments टाइप है कि प्रारंभ करने में कैसे - ये मेरे वर्ग संरचना हैएक अंतरफलक अन्य इंटरफेस
public interface IModel{}
public interface IGenericMapper<T> where T : IModel {...}
public class ActualModel:IModel {...}
public class ActualMapper: IGenericMapper<ActualModel> {...}
नक्शाकार initialse मेरे वास्तविक कोड है:
IGenericMapper<IModel> mapper;
mapper= new ActualMapper();
यह संकलित नहीं करता है। मुझे त्रुटि
स्पष्ट रूप से प्रकार 'ActualMapper' को 'IGenericMapper' में परिवर्तित नहीं कर सकता है। एक स्पष्ट रूपांतरण मौजूद है (यदि आप एक डाली याद कर रहे हैं?)
जब मैं
mapper= new ActualMapper() as IGenericMapper<IModel>;
का उपयोग कर नक्शाकार ठीक से प्रारंभ नहीं होता है यह डाली है (इसे वापस शून्य के रूप में आता है)
मुझे क्या याद आ रहा है - ActualMapper()
लागू IGeneric
मैपर और इसके प्रकार के प्रत्यारोपण 'IModel' यह मैपर शुरू क्यों नहीं कर सकता है।
क्या यह संरचना करने का एक और तरीका है जिससे मुझे क्या चाहिए?
बहुत बहुत
नोट धन्यवाद समाधान लोगों का प्रस्ताव किया है मुझे अन्य संकलन त्रुटियों देता है के रूप में मानचित्रण इंटरफ़ेस निम्नलिखित सदस्य हैं
T GetModel(busO bBusinessObject);
busO SetBusObject(T source, busO target);
जाहिरा तौर पर आप नहीं कर सकते एक इनपुट पैरामीटर जब के रूप में सामान्य प्रकार है अपने "बाहर"
क्या आप ILFFMapper <> की परिभाषा जोड़ सकते हैं? – LunicLynx
'var ILFFMapper 'यह एक वाक्यविन्यास त्रुटि है,' var' कीवर्ड –
Tommi
हटाएं आपको एक कॉन्वेंटेंट प्रकार की आवश्यकता है। कोशिश IGenericMapper < out T> –