有没有办法让unity容器将自己传递给一个对象?
即:
public class Something {
public Something(IUnityContainer container) {
...
}
}
发布于 2009-05-06 13:12:07
第一个答案和我想的差不多。谢谢。
在Unity之前,我们构建了自己的IOC容器,并且我们有一个类似于...
<constructor>
<param name="factory" value="[{factory}]"/>
</constructor>
{factory}使它将自身作为参数进行传递。
至于将其设置为静态:我不喜欢使用这种方法,因为每个对象都依赖于单个属性(显然)。它的可重用性和可测试性较差,特别是如果静态是只读的(它应该是只读的)。一旦设置了静态,你就不能(或者不应该)弄乱它,这就限制了你可以创建的测试场景。
如果没有其他东西,那么对象至少应该能够接受容器作为参数。如果它不在那里,那么它可能会回落到静电。
我们已经走上了使用单一实例的道路,并最终改变了它。在我看来,对象应该比这更灵活。如果对象的使用者希望有一个实例传递给它的对象,这取决于使用者。但是,对象本身不应该需要它。使用上面所示的语法,可以很容易地通过图形传递容器。
谢谢为我提供信息。
杰伦
抱歉..。新来的。我现在明白了,这应该是一个评论,而不是一个答案。
发布于 2009-05-06 04:11:34
正如bendewey提到的,你可以传递它,因为它是一个对象,就像任何其他对象一样,但是,为什么要传递它呢?
你只有一个,为什么不让它成为任何类都可以访问的静态属性呢?
https://stackoverflow.com/questions/827756
复制相似问题