मैं यह मेरी कोड में एक निष्पक्ष बिट कर रही हो रहे हैं:क्या मुझे ऑटोफैक का उपयोग करके सामान्य कक्षाओं को स्पष्ट रूप से बांधना चाहिए?
public class ActionsModule : Module
{
protected override void Load(ContainerBuilder builder)
{
base.Load(builder);
builder.Register(c => LogManager.GetCurrentClassLogger()).As<ILog>().InstancePerDependency();
// Autofac doesn't seem to be able to inject things without explicit binding
builder.RegisterType<ComboActions>().As<ComboActions>().InstancePerHttpRequest();
builder.RegisterType<AppActions>().As<AppActions>().InstancePerHttpRequest();
}
}
}
कहाँ 'क्रियाओं' वर्ग एक वर्ग मैं की आवश्यकता होती है मेरी नियंत्रक में इंजेक्शन किया जा रहा है, और विभिन्न अन्य उप निर्भरता है।
थोड़ा बकवास लगता है। ऑटोफैक क्यों हल नहीं कर सकता कि कक्षा में निर्भरता वाले निर्माता हैं जो पहले ही संतुष्ट हैं और एक उदाहरण स्वचालित रूप से बनाते हैं?
मैं मतलब, इंजेक्ट किया जा सकता है अगर वर्ग एक वर्ग बी की आवश्यकता है और वर्ग बी सी, डी, ई, आदि के लिए पर्याप्त उचित की आवश्यकता है, मुझे लगता है कि आप न पूरी निर्भरता श्रृंखला चलने के लिए अगर आप एक वर्ग बना सकते हैं देखना चाहते हैं चलने के समय पर। ... लेकिन यदि कक्षा ए सीधे सी और डी पर निर्भर करता है जो स्पष्ट रूप से बंधे हैं, निश्चित रूप से यह एक मामूली मामला है?
मैं कुछ याद आ रही है? इस के लिए कोई दस्तावेज नहीं दिख रहा है ...
Whoah। इस बारे में कभी नहीं पता था। टीआईएल! –
इस अद्भुत है, खासकर जब से तुम 'builder.RegisterSource की तरह कुछ कर सकते हैं (नई AnyConcreteTypeNotAlreadyRegisteredSource (x => x.Name.Contains (" ViewModel ")));' –