मैं विरासत कोड पर काम कर रहा हूं।स्ट्रक्चर मैप स्पष्ट कन्स्ट्रक्टर तर्क निर्दिष्ट करना
मेरे पास एक ही वर्ग के विभिन्न तरीके हैं जो निर्भरता के निर्माता को विभिन्न तर्क देते हैं। मैं कुछ बुनियादी आईओसी उपयोग शुरू करने की कोशिश कर रहा हूं।
var thing = ObjectFactory.GetInstance<IThingInterface>(new ExplicitArguments(
new Dictionary<string, object> {
{ "constructorArgA", notShown },
{ "constructorArgB", redacted.Property } }));
कहाँ वास्तविक गुण constructorArgA और बी बदलाव के लिए पारित कर दिया पर मैं कहाँ हूँ निर्भर करता है: अभी मैं StructureMap इस तरह मेरे तर्क गुजर की है।
x.For<IHidden>().Use<RealType>()
.Ctor<IConfig>().Is(new Func<IContext, IConfig>(
(context) => someMethodToGetIConfig()));
अगर मैं खरोंच से इस लिख रहे थे मैं संरचना शायद चाहते हैं:
"constructorArgA" के बजायवहाँ वास्तविक प्रकार के माध्यम से इस कॉन्फ़िगर करने के लिए, की तरह आप जब objectFactory को विन्यस्त, की तरह कर सकते हैं एक तरीका है इस से बचने के लिए निर्भरता थोड़ा अलग है, लेकिन यह अभी मेरे लिए एक विकल्प नहीं है।
या मुझे कन्स्ट्रक्टर इंजेक्शन के बजाय प्रॉपर्टी इंजेक्शन पर स्विच करना चाहिए? –