有没有办法提示 Unity 应该使用哪个构造函数?

发布于 2024-12-09 06:16:44 字数 362 浏览 0 评论 0原文

Unity 的 InjectionConstructor当您需要调用特定的构造函数时效果很好,因为您有非常具体的依赖项(例如外部依赖项、命名注册或未命名注册的任意组合),但它需要所有参数 指定的。

有没有某种方法可以通过“查找并使用具有最多参数数量的构造函数”来增强 Unity 的“查找并使用具有最多参数数量的构造函数”,可以接受 实例IX 签名中的某处”?

Unity's InjectionConstructor works well when you need to invoke a specific constructor because you have very specific dependencies in mind (e.g. any mix of external dependencies, named registrations, or unnamed registrations), but it requires all parameters to be specified.

Is there some way to augment Unity's "find and use the constructor with the most number of parameters" with "find and use the constructor with the most number of parameters that also could accept an instance of IX somewhere in the signature"?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧伤慢歌 2024-12-16 06:16:44

马克的评论提供了答案的基础。也就是说,AddPolicies 的实现

  • 必须找到一个与我传递到 InjectionConstructor 构造函数中的所有值(显式)相匹配的构造函数。存在一些限制(例如,如果值为 null 或者它们与构造函数中的超类型匹配),并且
  • 对于其余(隐式)值,请使用容器来解析它们。

我并不是说这很好。我最终在其他地方使用了 RegisterInstance,混合参数的需求就消失了。但这对于那些可能需要它的人来说是一个解决方案。

Mark's comment provided the basis for the answer. Namely, the implementation of AddPolicies

  • has to find a constructor that matches all of the values (explicit) I pass into the constructor of InjectionConstructor. There are limitations (e.g. if the values are null or they get matched against a supertype in a constructor), and
  • for the remaining (implicit) ones, use the container to resolve them.

I'm not saying this is good though. I ultimately used RegisterInstance elsewhere and the mixed-parameter need went away. But it's a solution for those who might need it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文