c# - 统一扩展

标签 c# .net dependency-injection unity-container

我继承了一些带有自定义 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/

相关文章:

c# - 如何以编程方式确定我是否具有在 .Net 中使用 C# 的写入权限?

c# - 以 SOLID 方式使用 DbContext

design-patterns - 害怕使用依赖注入(inject)框架

c# - 命名参数 : C# vs Python

c# - 从单线程进行 COM 调用会挂起线程

c# - 在 EF 模型中隐藏敏感字段或创建新类的更好做法?

c# - 尝试获取用于在 ASP.NET Core MVC 中播种数据的注入(inject)服务

c# - 多线程运行时在哪里调用Control.Invoke/BeginInvoke?

c# - .NET 版本的 HTML Tidy?

.net - 在 vb.net 中读取非常大的文本文件时出现内存不足错误