【发布时间】:2009-02-05 08:27:49
【问题描述】:
我正在开发一个将 Unity 框架用作 IoC 容器的项目。我的问题与使用属性或设置器注入将可选依赖项(在本例中为记录器)注入多个类有关。
我不想让我所有的类的构造函数都被这些可选的依赖项弄得乱七八糟,但我找不到在 Unity 中处理这个问题的好方法。根据MSDN documentation,您可以通过向属性添加属性来执行此操作:
private ILogger logger;
[Dependency]
public ILogger Logger
{
get { return logger; }
set { logger = value; }
}
我觉得这很丑。在StructureMap 中,可以执行以下操作来设置给定类型的所有属性:
SetAllProperties(policy => policy.OfType<ILog>());
有谁知道是否可以在 Unity 中做类似的事情?
编辑:
Kim Major 建议使用this approach,也可以通过代码实现。
我会对如何为所有匹配属性自动执行此操作的示例感兴趣。
【问题讨论】:
标签: .net inversion-of-control unity-container