के साथ मॉड्यूल/इंस्टॉलर्स/रजिस्ट्रीज़ का अनुकरण कैसे कर सकता हूं ऑटोफैक में मॉड्यूल हैं, विंडसर में इंस्टालर और स्ट्रक्चर मैप रजिस्ट्रीज हैं ... सरल इंजेक्टर के साथ मैं कॉन्फ़िगरेशन लॉजिक को पुन: प्रयोज्य कक्षाओं में कैसे पैक कर सकता हूं?मैं सरल इंजेक्टर
मैं कोशिश की है:
public interface IModule { }
public class FooModule : IModule
{
public FooModule(SimpleInjector.Container container)
{
container.RegisterSingleton<IBar, Bar>();
container.RegisterSingleton<IFoo, Foo>();
}
}
और मैं संरचना रूट में इसका इस्तेमाल करते हैं:
public static void Main(string[] args)
{
var container = new SimpleInjector.Container();
container.RegisterCollection<IModule>(new FooModule(container));
...
}
हालांकि, FooModule
कंटेनर पर निर्भर करता है और हो सकता है नहीं एक अच्छा अभ्यास में ... http://code.google.com/p/autofac/wiki/BestPractices देखना :
यदि घटक कंटेनर पर निर्भरता रखते हैं, देखें कि वे सेवाओं को पुनर्प्राप्त करने के लिए कंटेनर का उपयोग कैसे कर रहे हैं, और इसके बजाय उन सेवाओं को घटक (निर्भरता इंजेक्शन) में कन्स्ट्रक्टर तर्कों में जोड़ें।
ध्यान दें कि ऑटोफैक के साथ- आपका 'FooModule' कंटेनर पर निर्भर करेगा (या ऑटोफैक के साथ,' कंटेनरबिल्डर, क्योंकि ऑटोफैक कंटेनर को दो प्रकारों में विभाजित करता है)। [यह ऑटोफैक दस्तावेज] (http://code.google.com/p/autofac/wiki/StructuringWithModules) पर एक नज़र डालें और आप स्पष्ट रूप से देखेंगे कि मॉड्यूल इस निर्भरता को लेते हैं। मॉड्यूल के लिए, आपको बस कंटेनर की आवश्यकता होती है, लेकिन इससे कोई फर्क नहीं पड़ता क्योंकि मॉड्यूल आपकी रचना रूट का हिस्सा होगा। – Steven