NinjectMVC3.csを使用してカスタムメンバーシッププロバイダクラスを挿入する方法を知っている人はいますか?私はグーグルで試してみて、すべての実装を試してみましたが、どれも動作しません。誰もこれをやっていますか?私はプロパティ属性[Inject]を使って注入しようとしましたが、コンストラクタインジェクションが動作しないので、他の方法はわかりません。このNinjectMVC3 2.2.00とメンバーシッププロバイダ
なしに動作しません:カスタムメンバシッププロバイダを注入する
public class AccountMembershipProvider : MembershipProvider
[Inject]
protected IAccountRepository accountRepository { get; set; }
//NinjectMVC.cs RegisterServices
kernel.Bind<IAccountRepository>().To<AccountRepository>();
kernel.Bind<MembershipProvider>().ToProvider<AccountMembershipProvider>();
public class AccountMembershipProvider : MembershipProvider
[Inject]
protected IAccountRepository accountRepository { get; set; }
//NinjectMVC.cs RegisterServices
kernel.Bind<IAccountRepository>().To<AccountRepository>();
kernel.Bind<MembershipProvider>().ToMethod(ctx=>Membership.Provider);
完全な例がいいだろう。
私はあなたのコントローラにメンバシッププロバイダオブジェクトしようとしている程度の結束が、どのように使うの持っているものです。次に、コンストラクタインジェクションを介して、リポジトリをメンバシッププロバイダに注入することができます。 –
カスタムメンバシッププロバイダに依存せずにMembership.CreateUser(..)を記述できるようにしたいということを除いて、私はそのことについて考えました。私はカスタムメンバーシッププロバイダ内のリポジトリを使用しています。メンバーシッププロバイダはWebコンフィグレーション経由で設定されています。私がコントローラにメンバーシップを注入しようとするなら、私は準備ができているASPNETメンバーシッププロバイダを使用することさえできません。 DIを使用したMS Provider Modelを使用した頭痛の価値はほとんどありません。返事をありがとう、私はそれを感謝します。 – Fab
私は昨夜、プロバイダーで解決するための別のテクニックを読んで興味深い記事を書いています - http://stackoverflow.com/questions/4193484/how-do-i-control-membershipprovider-instance-creation-lifetime以下のRemoと全く同じことです。Castle Windsorを使用するだけです。http://bugsquash.blogspot.com/2010/11/windsor-managed-membershipproviders.html –