私は 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 を使用してカスタム メンバーシップ プロバイダーに具象型を挿入するにはどうすればよいでしょうか。