2012-04-30 82 views
0

可能重複:
Inject repository to custom membership provider with NinjectNinject和自定義成員資格提供MVC3

...我已經尋找很多關於這個話題太大最爲接近的答案在這裏 MVC 3 ninject custom membership context disposed error 但我不對我的應用程序中的所有細節有任何想法是一個域包含我的實體和抽象的存儲庫和實現一切工作正常,當我使用我的Ninject綁定這樣的

public class NinjectControllerFactory : DefaultControllerFactory{ 
    readonly IKernel _kernel; 


    public NinjectControllerFactory(){ 
     _kernel=new StandardKernel(); 
     AddBindings(); 
    } 


    protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType){ 
     return controllerType == null 
      ? null 
      : (IController) _kernel.Get(controllerType); 
    } 
void AddBindings(){ 
     _kernel.Bind<IٍSomeRepository>() 
      .To<EFSomeRepository>(); 

,但我不知道如何給客戶成員資格提供我看了一下這個,我有通過poperty注入綁定,但我不知道怎麼回事,什麼想法?

+0

對不起,因爲這太類似於其他問題鏈接 –

回答

0

首先,您應該使用Ninject.MVC3而不是您自己的控制器工廠。 Ninject.MVC3負責管理所有東西,只需要在App_Start \ NinjectWebCommon.cs中提供映射

其次,除非您使用自定義成員資格提供程序,否則不要打擾使用Ninject作爲成員資格。即使如此,如果您不混合Ninject和Membership,那也不會那麼痛苦。除非你真的知道你在做什麼,否則我會建議你不要打擾它。

問題是,Membership是一個靜態類,它創建了成員資格提供程序的靜態實例。這意味着它在請求結束時不會被破壞。有辦法解決這個問題,但總的來說,使用Membership實際上比使用DI更容易。

您所關聯的問題解決了將業務邏輯注入自定義成員資格提供程序的特定問題。如果你需要這樣做,那麼這可能是一個不錯的選擇。但是,我發現大多數定製會員供應商往往非常簡單。

相關問題