0

我正在實施一個類的Windsor容器MembershipProvider。我可以解決實現,但它不調用從web.config中提取值的Initialize方法。我如何實例化並確保它調用了Initialize方法?與溫莎城堡一起使用MembershipProvider

代碼添加到集裝箱

container.Register(Component.For<FNHMembershipProvider>() 
    .LifeStyle.Transient 
    .Named("myMembershipProvider")); 

container.Register(Component.For<FNHRoleProvider>() 
    .LifeStyle.Transient 
    .Named("myRoleProvider")); 

回答

0

這裏的一個關鍵點是,你是不是注射Membership類,你注射的成員提供。 Membership類是根據您的註冊表條目創建成員資格提供程序並調用初始化。 Membership類是一個靜態類,你不能注入它(雖然你可以注入一個返回靜態成員類的包裝類,但我沒有看到很多好處)。

總的來說,我發現它比試圖讓會員使用DI更有價值。

+0

我必須根據我的要求使用DI。那麼我會創建包裝器,將其注入到控制器中,然後將該包裝器調用到GetUser,創建用戶等? – Reaction21

+0

是的,這是要走的路。我想這就是你在MV模式下爲MVC3應用程序提供的應用程序框架中找到的方法。模板不使用DI,但很容易找出如何切換到DI。 – Crixo