"注入"属性不适用于字段

Fre*_*ood 3 .net c# ioc-container ninject-2

Inject属性不适用于字段.

[Inject]
public MyContext context; //Not injected

[Inject]
public MyContext context {get; set;} //Injected
Run Code Online (Sandbox Code Playgroud)

我正在使用默认的Ninject设置.为什么不注入田地?

Gle*_*lar 8

因为这是不允许的.

来自Ninject 2 Beta 公告:

Ninject 1.x中没有出现在Ninject 2中的东西:

  • 现场注入:Ninject 2的注入现在由表达式树驱动,而在.NET 3.5中,无法使用表达式树设置字段值.因为这是一个不好的做法,我决定削减它.

  • 由于Ninject的作者删除了对注入字段的支持,他应该删除`InjectAttribute`上的`AttributeTargets.Field`装饰.换句话说,Ninject中存在一个错误,因为问题中给出的代码不应该编译. (4认同)