【发布时间】:2012-09-14 11:40:34
【问题描述】:
我有一个很大的类层次结构。 当我的应用程序启动时,我初始化 UnityContainer 对象并对其进行配置。 之后,我总是通过构造函数将它传递给层次结构中的另一个类。 像这样:
Unity 容器将这些类作为注册:IClassA、IClassB、IClassC、IClassD
接口的所有具体实现都有带有 IUnityContainer 参数的构造函数。 例如,
public class ClassA : IClassA
{
public ClassA(IUnityContainer unityContainer)
{
}
}
因此,每次创建某个类的新实例时,我都必须传递一个 IUnityContainer 对象。
我可以减少传递 IUnityContainer 对象作为构造函数参数的数量吗? 也许通过使用依赖属性?
【问题讨论】:
-
为什么要将容器传递给构造函数?这是一种非常糟糕的代码气味。
标签: c# .net dependency-injection inversion-of-control unity-container