0

以下のコンストラクトを持つクラスの場合、コンストラクター注入はうまく機能しますが、プロパティではありません。Inject属性を機能させるために、規則に他に何を追加する必要がありますか

public partial class Repo
{
     [Inject] 
     public ILogger Logger{get;set;}
}

NInjectWebCommon.cs のバインディング

private static void RegisterServices(IKernel kernel)
        {
            //Dispose all resource after the requests ends
            kernel.Bind(x => x.FromAssembliesMatching("*").SelectAllClasses().BindAllInterface().Configure(scope=>scope.InRequestScope()));

        }
4

1 に答える 1

0

何らかの形でエンティティ フレームワークによってリポジトリ クラスがインスタンス化されていると想定しています。したがって、ninject を使用してリポジトリ インスタンスを要求していない場合は、ninject を使用して既存のインスタンスを構築する必要があります。Injectこれは、カーネルのメソッドで実行できます。

var kernel = new StandardKernel();
var repo = new Repo();
kernel.Inject(repo);
于 2013-01-09T18:06:35.717 に答える