![]() |
1
3
虽然您确实可以将参数传递给resolve方法,但是如果这实际上是正确的设计,请仔细考虑。 你为什么一开始就想这么做?是因为您想使用Unity作为服务定位器吗?这是我唯一能想到的原因,但是 I consider this an anti-pattern . DI容器的使用应遵循好莱坞的原则:告诉它 resolve the entire application graph at the Composition Root 然后把这一切都忘了。 在您的特定情况下,您可以保持某些项不变,但如果您希望能够将hashingClass作为依赖项来改变,则需要将其注入到某个项中,并且 构造器注入 是最好的选择。 如果您的应用程序中只需要一个someitem实例,那么您可以像在Unity中那样连接它,但是如果您需要创建多个实例,那么 Abstract Factory is the correct approach . 您的例子就差不多了:您只需要从someitemFactory提取一个接口,并在任何需要创建someitem实例的使用者中依赖于这个isomeitemFactory。 它看起来像是更多的代码,但是代码行在任何情况下(不管是以何种方式)都不是代码质量的特别好的度量标准。但是,这种方法允许您遵循 Single Responsibility Principle 并且独立地改变某个项目的创建和散列。 注意,没有 these principles 专门针对统一,但一般适用于DI。 |
![]() |
2
0
似乎可以将参数传递给Unity的resolve()方法。有关详细信息,请参阅此问题的已接受答案: Can I pass constructor parameters to Unity's Resolve() method? |
![]() |
3
0
你说的团结一致是可以做到的。
在config中,假设您使用的是config文件,则可以
|
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |