![]() |
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文件,则可以
|
![]() |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 3 年前 |
|
Dansih · .Net核心自定义身份验证方案 3 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 3 年前 |