Hoe kan ik repositories in een aangepaste MembershipProvider injecteren?

Het lijkt erop dat ik dit niet aan het werk kan krijgen. Ik heb een aangepaste MembershipProvider gemaakt en ik wil een repository binnenin injecteren, maar de [Inject] -eigenschap werkt gewoon niet.

  public class PyrosphereMembershipProvider : MembershipProvider
    {
        [Inject]
        protected IDepositoireUtilisateur DepositoireUtilisateur { get; set; }

        [Inject]
        protected IDepositoireProfile DepositoireProfile { get; set; }
...

Ik denk dat dit komt omdat deze klasse wordt gemaakt lang voordat de MVC-toepassing wordt uitgevoerd, die het werkelijke probleem veroorzaakt. Ik krijg meer problemen met het proberen om de lidmaatschapprovider te gebruiken dan met het maken van mijn eigen systeem.

Over mijn ninject-configuratie gebruik ik de directory-methode App_Start. Al mijn binding is correct. Ik keek zo dat het niets te maken had met mijn bindingen.

Alle hulp wordt gewaardeerd!

1
Je hebt gelijk dat de reden is dat Ninject niet bezig is met het maken van je MembershipProvider-klasse. je kunt achteraf een Kernel.Inject doen, maar het echte antwoord is om hier wat beter te zoeken naar ninject en/of andere DI-frameworks. Integratie met de lidmaatschapsprovider kan het beste gebeuren.
toegevoegd de auteur Ruben Bartelink, de bron

1 antwoord

De ASP.NET-providers zijn niet ontworpen voor een juiste injectie van afhankelijkheid. Er zijn alleen workarounds voor hen.

Ofwel moet u een binding voor hen instellen en minstens één instantie oplossen voordat u ze gebruikt. Bijv. door een instantie in de Global.asax te injecteren of u moet een instantie handmatig injecteren vóór het eerste gebruik ( kernel.Inject (...) ). Nogmaals waarschijnlijk in de global.asax-startmethode voor toepassingen.

3
toegevoegd
alrigh im definitief opgeven op de provider dan zal ik mijn eigen ik weet hoe het werkt, dus dat zal geen echt probleem zijn.
toegevoegd de auteur Rushino, de bron