まず、Ninject2.0を使用しています
挿入したいマスターページがありますが、その方法がよくわかりません。私が試したのは、System.Web.Mvc.ViewMasterPageから派生するクラスを作成してから、プロパティを作成することです。
[Inject]
public ICacheService<List<Category>> Categories { get; set; }
[Inject]
public IConfigurationSettings Config { get; set; }
ページを実行すると、どちらのプロパティも設定されず、両方ともnullになります。理由についてのアイデアやこれを行う方法の例はありますか?ありがとう
- アップデート
それで、私はさらに調査を行いました。Ninjectはクラスの作成をインターセプトしないため、クラス内のオブジェクトを自分で解決する必要があるようです。だから今私の質問は、カーネルのリゾルバーをどのように作成するのですか?上記のコードはクラスライブラリ内にあるため、カーネルへの参照はありません。私は次のことを試しました:( http://www.codethinked.com/post/2009/10/07/Our-Biggest-Enemy-Isne28099t-Developers-Who-Refuse-To-Move-Forward-It-isから少し変更-開発者-Who-Pretend-To-Move-Forward.aspx)
public class KernelResolver
{
private static IKernel _kernel;
public KernelResolver(IKernel kernel)
{
_kernel = kernel;
}
public static T Resolve<T>()
{
return _kernel.Get<T>();
}
}
そして登録:
Bind<KernelResolver>().ToSelf()
それでもカーネルはnullです...いくつかの例を見る必要がありますが、何も見つかりません。または、混乱して何を探しているのかわからない可能性があります:\
どんな助けでも大歓迎です!