2013-01-02 107 views
0

對於具有以下構造的類,構造函數注入很好,但不是屬性。還有什麼我需要添加到公約作出Inject屬性工作NInject 3約定N注入屬性未注入

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())); 

     } 
+0

Ninject可能無法創建該記錄器。你有沒有用一些簡單的物體來試用它?你在使用Ninject的日誌擴展嗎? – mipe34

+0

@ mipe34 ILogger是我開發沒有日誌擴展的接口。然後我該怎麼做注入接口? – Deeptechtons

+0

這應該工作。哪個組件要求回購?爲什麼它是部分? –

回答

0

我asuming就是倉庫類是由實體框架出於某種原因實例化。因此,如果您不需要使用ninject請求repo實體,則需要使用ninject構建現有實例。這可以通過內核上的Inject方法完成。

var kernel = new StandardKernel(); 
var repo = new Repo(); 
kernel.Inject(repo); 
+0

中的'Logger',其中'var Kernel = new StandardKernel()'?因爲內核不是靜態全局變量 – Deeptechtons

+0

更改了示例 –