/ / एकता कंटेनर में एकाधिक सेवा कक्षाओं को कैसे पंजीकृत करें? - सी #, सी # -4.0, एकता कंटेनर

एकता कंटेनर में एकाधिक सेवा कक्षाओं को कैसे पंजीकृत करें? - सी #, सी # -4.0, एकता कंटेनर

एकता कंटेनर में एकाधिक सेवा कक्षाओं को कैसे पंजीकृत करें? मैं यूनिटी.WebApi का उपयोग कर रहा हूँ; मेरा यूनिटी कॉन्फिग कोड नीचे दिया गया है

var container = Container.Instance;

container.RegisterType<ILogger, Log4NetLogger>();
container.RegisterType<NHibernateFactory, NHibernateFactory>();
container.RegisterType<INhibernateUnitOfWork, NHUnitOfWork>();
container.RegisterType<IProductService, ProductService>();

container.RegisterType(typeof(IRepository<,>), typeof(NHRepository<,>));

GlobalConfiguration.Configuration.DependencyResolver = new UnityDependencyResolver(container);

उपरोक्त कोड में मैंने पंजीकृत उत्पाद पंजीकृत किया हैसर्विस। इस तरह मैं कई सेवा कक्षाओं और इंटरफेस पंजीकृत करना चाहता था। यदि हम इसे मैन्युअल रूप से जोड़ते हैं तो हमें उन वर्गों को पंजीकृत करने के लिए बहुत सारी पंक्तियां जोड़नी होंगी।

क्या यह गतिशील रूप से जोड़ने का कोई समाधान है?

उत्तर:

जवाब के लिए 0 № 1

आपके सेवा मामले के लिए ..

container.RegisterTypes(
AllClasses.FromLoadedAssemblies().Where(t => t.Name.EndsWith("Service")),
WithMappings.FromMatchingInterface,
WithName.Default,
//this is important. Choose the one that suits you
WithLifetime.Hierarchical);