[英]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.