当使用依赖注入来提供在构造函数中使用的参数时,有时需要这样做。这是在Unity(和其他依赖注入容器)中支持的东西,所以当它试图创建类型的实例时,它可以在构造函数中提供参数作为参数。在Unity中解析类型时传递构造函数参数:最佳做法
我的问题是:这种方法是否可取?
内的接口是不可能指定哪些参数的实现类必须有。通过给Unity指定参数,假定实现类具有这些参数,并且将对未来的实现类进行隐式约束。这些约束无法通过接口传递。
那么,这是如何接口本身指定(在.NET)的缺陷,例如。应该可以指定构造函数签名吗?或者由于其他的需要,这个功能(能够提供构造参数)包含在Unity中吗?
唯一真正可行的方法(对我来说)似乎是使用一个工厂来创建实现类,并做了工厂依赖注入。
我很感激我的问题在这里可能不是很清楚,所以我会问它略有不同:什么是应该做在具有需要参数的构造函数的类的依赖注入的最佳方式?
(我不相信这个问题是主观的,因为有可能应该是这种类型的依赖注入的单一设计模式。)
编辑:
我要补充一点,我的主要问题是我可以创建一个新的实现类,它具有额外的构造函数参数(其中构造函数参数不是可以通过统一创建的东西)。
但是,在构造函数需要实例变量的地方,我需要将这些提供给Unity。但是接口没有指定我需要这些参数,所以如果我创建一个具体的实施具有在构造函数中附加参数的接口? – 2010-01-28 12:10:44