2016-12-29 25 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