我继承了一些带有自定义 DI 容器(需要移动到统一)的代码,它是基于属性的,如 MEF 例如
[SERVICE]
PUBLIC <interface> myVar { get; set ; }
想知道是否已经有一个我可以使用的 unity 扩展,或者可能对构建一个有任何帮助?
最佳答案
不清楚 [SERVICE]
应该启用什么行为。所以我猜:
开箱即用的 Unity 支持 Injection Attributes对于不同形式的依赖注入(inject)。你也可以做 Attribute-Driven Policies用于方法拦截。
如果您可以灵活地更改注入(inject)方式:首选模式是使用构造函数注入(inject)而不是属性或服务定位器。它允许您从类中删除对 Unity 的所有引用...这意味着您可以再次更改容器而无需更改代码。参见 Service Locator is an Anti-Pattern .
关于c# - 统一扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7996618/