2016-12-29 58 views
0

我使用統一在ASP.NET C#依賴注入。如何注入實例與[相關]屬性使用Unity?

通常我會注入依賴在構造函數中,如:

class MyClass 
{ 
    private readonly ISomething _something; 

    public MyClass(ISomething something) 
    { 
     _something = something; 
    } 

    public MyMethod() 
    { 
     // _something is instantiated as expected 
    } 
} 

那裏的依賴已被配置爲:

container.RegisterType<ISomething, Something>(); 

這是所有偉大的。

但現在我需要做的注入,而無需使用構造函數。所以我讀了我可以使用依賴屬性[Dependency]來達到這個目的。

class MyClass 
{ 
    [Dependency] 
    private ISomething _something { get; set; } 

    public MyMethod() 
    { 
     // _something appears to be null 
    } 
} 

但由於某種原因_something似乎爲空。

我錯過了什麼?

SOLUTION:

見接受的答案在這裏,它展示瞭如何創建一個工廠產生注入的實例:

How to resolve dependency in static class with Unity?

爲我工作!

+0

「但現在我需要做的注入,而無需使用構造函數。」你爲什麼需要這個? – Steven

回答

0

你試圖注入的私人財產。這不可能。

而且就個人而言,我建議你堅持到構造注射,以防止自己鎖定到一個特定的依賴注入框架。

+0

我用解決方案更新了這個問題。所以確實有可能 - 我的工作很好。 – brinch