मैं ऑटोमैपर 4.2 का उपयोग करने के लिए मेरा एक प्रोजेक्ट अपडेट कर रहा हूं, और मैं परिवर्तनों को तोड़ने में दौड़ रहा हूं। जबकि प्रतीत होता है कि संकल्प में हल करने के लिए प्रतीत होता है, मैं पूरी तरह से आश्वस्त नहीं हूं कि मैंने इसे सबसे उचित तरीके से किया है।ऑटोमैपर 4.2 और निनजेक्ट 3.2
पुराने कोड में, मेरे पास NinjectConfiguration
है, और AutoMapperConfiguration
कक्षा है जो प्रत्येक वेबएक्टिवेटर द्वारा लोड की जाती है। नए संस्करण में AutoMapperConfiguration
बाहर चला जाता है और मैं बजाय NinjectConfiguration
वर्ग जहां बाइंडिंग हो रही हैं में उदाहरण के एक MapperConfiguration
सीधे, इसलिए जैसे:
private static void RegisterServices(
IKernel kernel) {
var profiles = AssemblyHelper.GetTypesInheriting<Profile>(Assembly.Load("???.Mappings")).Select(Activator.CreateInstance).Cast<Profile>();
var config = new MapperConfiguration(
c => {
foreach (var profile in profiles) {
c.AddProfile(profile);
}
});
kernel.Bind<MapperConfiguration>().ToMethod(
c =>
config).InSingletonScope();
kernel.Bind<IMapper>().ToMethod(
c =>
config.CreateMapper()).InRequestScope();
RegisterModules(kernel);
}
तो, यह AutoMapper 4.2 बाध्यकारी Ninject का उपयोग करने का उचित तरीका है? ऐसा लगता है कि अब तक काम कर रहा है, लेकिन मैं बस यह सुनिश्चित करना चाहता हूं।
तो 'इनरक्वेटस्कोप()' के बजाय इसे 'इनिंगिंगटनस्कोप() 'होना चाहिए? अन्यथा बाइंडिंग ठीक है? – Gup3rSuR4c
@Alex क्षमा करें कोड नमूना भूल गए, इसे जोड़ा। –
ग्रेट, यह मेरी समस्या हल हो गया। –