मैं इस नमूने जिसमें मैं ASP.NET MVC 5 में पहचान प्रदाता की सुविधाओं की कोशिश कर सकते डाउनलोड किया है , सेवाओं, काम की इकाई और समस्याओं के बिना अन्य सामान।पहचान प्रदाता और एकता निर्भरता इंजेक्शन
लेकिन अब, जब मैं यूनिटी डी स्थापित करता हूं, तो मुझे इंटरफेस और डीआई के साथ कई समस्याएं होती हैं जो पहचान प्रदाता का उपयोग करती हैं।
मैंने अभी उदाहरण के कोड को डाउनलोड किया है और मैंने यूनिटी डी को कॉन्फ़िगर किया है, लेकिन मैं पहचान सदस्यता के लिए एकता का उपयोग नहीं करना चाहता, मैं केवल मेरे लिए यूनिटी डी का उपयोग करना चाहता हूं (आईआरपीओएसटीरी, आईएसईसी,
वर्तमान प्रकार, Microsoft.AspNet.Identity.IUserStore`1 [Ecoavantis.Interactive.GCI.Models: IUnitOfWork, आदि)
जब मैं एक उपयोगकर्ता रजिस्टर करने की कोशिश मैं यह त्रुटि है। ApplicationUser], एक इंटरफ़ेस है और इसका निर्माण नहीं किया जा सकता है। क्या आप मैपिंग टाइप कर रहे हैं?
मैं कुछ पोस्ट जिसमें वे कहा कि मैं कुछ इस तरह शामिल करना चाहिए पढ़ा है, लेकिन मैं पहचान प्रदाता में निर्भरता इंजेक्षन की जरूरत नहीं है ...
container.RegisterType<UserManager<ApplicationUser>>(new HierarchicalLifetimeManager());
container.RegisterType<IUserStore<ApplicationUser>, UserStore<ApplicationUser>>(new HierarchicalLifetimeManager());
किसी को भी मेरी मदद कर सकते हैं?
कोड उदाहरण:
/// <summary>Registers the type mappings with the Unity container.</summary>
/// <param name="container">The unity container to configure.</param>
/// <remarks>There is no need to register concrete types such as controllers or API controllers (unless you want to
/// change the defaults), as Unity allows resolving a concrete type even if it was not previously registered.</remarks>
public static void RegisterTypes(IUnityContainer container)
{
// NOTE: To load from web.config uncomment the line below. Make sure to add a Microsoft.Practices.Unity.Configuration to the using statements.
// container.LoadConfiguration();
// TODO: Register your types here
//container.RegisterType<DbContext, ApplicationDbContext>(new ContainerControlledLifetimeManager());
container.RegisterType<IUnitOfWorkAsync, UnitOfWork>(new PerRequestLifetimeManager());
container.RegisterType<IMainPanelService, MainPanelService>();
container.RegisterType(typeof (IRepositoryAsync<>), typeof (Repository<>));
container.RegisterType<IDataContextAsync, ecoavantisinteractivegciContext>(new PerRequestLifetimeManager());
}
आपका एप्लिकेशन यूज़र क्लास कैसा दिखता है? यह कह रहा है कि यह एक इंटरफेस होने पर कक्षा के रूप में उपयोग किया जा रहा है। यदि आप एप्लिकेशन उपयोगकर्ता के लिए इंटरफ़ेस का उपयोग कर रहे हैं, तो क्या आपने उस इंटरफ़ेस के लिए DI को कॉन्फ़िगर करने और इसके कार्यान्वयन की कोशिश की है? – grimurd
हां, मैंने कोशिश की है, लेकिन यह काम नहीं करता है ... मेरे पास कुछ प्रश्न समान हैं: http://stackoverflow.com/questions/24731426/register-iauthenticationmanager-with-unity – chemitaxis