2012-02-11 6 views
1

プロパティインジェクションをCastle Windsorを使用したMVCソリューションで使用する方法についてのドキュメントやヒントをお探しください。MVC 3ソリューションでCastle Windor Property Injectionを使用する方法

カスタムメンバーシッププロバイダを実装しており、コンストラクタインジェクションへのアクセス権がありません。現在Servicelocatorを使用してコンポーネントを取得していますが、Windsorでプロパティを設定する方法については興味があります。現在のコード:

public class CustomRoleProvider : System.Web.Security.RoleProvider 
{ 
    public IRepository<User> UserRepository 
    { 
     get { return ServiceLocator.Current.GetInstance<IRepository<User>>(); } 
    } 

    public override string[] GetRolesForUser(string username) 
    { 
     var user = UserRepository 
          .Where(x => x.Username == username) 
          .FirstOrDefault(); 

     return (user==null || user.UserUserRoles==null) ? new string[] { } : user.UserUserRoles.Select(x => x.UserRole.Name).ToArray(); 
    } 
    ... 
} 
+0

[MembershipProviderインスタンスの作成/有効期間を制御するにはどうすればいいですか?](http://stackoverflow.com/questions/4193484/how-do-i-control-membershipprovider-instance-creation-lifetime) –

答えて

1

あなたのDIフレームワークは、そのインスタンス化と寿命管理のための責任を負いませんので、役割プロバイダーと依存性注入を使用する方法はありません。サービスロケータはおそらく最も簡単な方法です。

実際にRoles.ProviderインスタンスをCastle Windsorに渡してプロパティ注入を試みることがあります。 following articleもご覧ください。

関連する問題