首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >unity容器可以将自身的引用作为构造函数参数传递吗?

unity容器可以将自身的引用作为构造函数参数传递吗?
EN

Stack Overflow用户
提问于 2009-05-06 02:22:41
回答 2查看 6.8K关注 0票数 19

有没有办法让unity容器将自己传递给一个对象?

即:

代码语言:javascript
复制
public class Something {

     public Something(IUnityContainer container) {
           ...
     }
}
EN

回答 2

Stack Overflow用户

发布于 2009-05-06 13:12:07

第一个答案和我想的差不多。谢谢。

在Unity之前,我们构建了自己的IOC容器,并且我们有一个类似于...

代码语言:javascript
复制
<constructor>
    <param name="factory" value="[{factory}]"/>
</constructor>

{factory}使它将自身作为参数进行传递。

至于将其设置为静态:我不喜欢使用这种方法,因为每个对象都依赖于单个属性(显然)。它的可重用性和可测试性较差,特别是如果静态是只读的(它应该是只读的)。一旦设置了静态,你就不能(或者不应该)弄乱它,这就限制了你可以创建的测试场景。

如果没有其他东西,那么对象至少应该能够接受容器作为参数。如果它不在那里,那么它可能会回落到静电。

我们已经走上了使用单一实例的道路,并最终改变了它。在我看来,对象应该比这更灵活。如果对象的使用者希望有一个实例传递给它的对象,这取决于使用者。但是,对象本身不应该需要它。使用上面所示的语法,可以很容易地通过图形传递容器。

谢谢为我提供信息。

杰伦

抱歉..。新来的。我现在明白了,这应该是一个评论,而不是一个答案。

票数 1
EN

Stack Overflow用户

发布于 2009-05-06 04:11:34

正如bendewey提到的,你可以传递它,因为它是一个对象,就像任何其他对象一样,但是,为什么要传递它呢?

你只有一个,为什么不让它成为任何类都可以访问的静态属性呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/827756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档