簡體   English   中英

使用StructureMap在自定義成員資格提供程序中注入

[英]Inject in custom membership provider with StructureMap

我使用StructureMap做了一點工作,我設法在我的控制器中注入(通過構造函數注入)一個接口的具體類型存儲庫。

現在,我需要將存儲庫類型注入我的自定義成員資格提供程序。 但是怎么樣? 我的自定義成員資格提供程序是通過Membership.Provider.ValidateUser (例如)創建的。

對於控制器我創建了一個這樣的類:

public class IocControllerFactory : DefaultControllerFactory
{
    protected override IController GetControllerInstance(
        System.Web.Routing.RequestContext requestContext, 
        Type controllerType)
    {
        return (Controller)
            ObjectFactory.GetInstance(controllerType);
    }
}

Global.asax ,在Application_Start()

//...
ObjectFactory.Initialize(x =>
{
    x.AddRegistry(new ArticleRegistry());
}
                                    );


ControllerBuilder.Current.SetControllerFactory(
    new IocControllerFactory());
//...

但是如何使用StructureMap在我的自定義成員資格提供程序中注入具體類型?

我認為在這種情況下沒有辦法注入。

注入僅在創建所需實例的“工廠”,知道注入以及不幸的是會員提供者區域顯示它的年齡時起作用。 當事情以不同的方式完成時,它被編碼回來了。

如果您在ASP.NET MVC(版本2+)中使用自定義成員資格提供程序,則可以通過DependencyResolver請求獲取所需內容,如下所示:

DependencyResolver.Current.GetService<IRepository<User>>();

或者您可以直接使用ObjectFactory。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM