gpt4 book ai didi

c# - C#/Unity 中的构造函数注入(inject)?

转载 作者:可可西里 更新时间:2023-11-01 03:11:41 25 4
gpt4 key购买 nike

我将 C# 与 Microsoft 的 Unity 框架结合使用。我不太确定如何解决这个问题。这可能与我对Unity的DI缺乏了解有关。

我的问题可以用下面的示例代码来总结:

class Train(Person p) { ... }

class Bus(Person p) { ... }

class Person(string name) { ... }

Person dad = new Person("joe");
Person son = new Person("timmy");

当我在 Bus 上调用 resolve 方法时,如何确定注入(inject)了名为“timmy”的人“son”,在解析 Train 时如何确定名为“joe”的人“dad”解决了吗?

我在想也许可以使用命名实例?但我不知所措。任何帮助将不胜感激。

顺便说一句,我宁愿不创建 IPerson 界面。

最佳答案

除非您分别将“joe”和“timmy”注册为命名依赖项,否则您无法确定“timmy”已注入(inject)到 Schoolbus 中。事实上,如果您尝试将同一类的两个实例注册为未命名的依赖项,您将有一个不明确的设置,并且您将根本无法解析 Person

一般来说,如果您必须注册大量命名实例,您可能会以错误的方式进行 DI。 DI 的主要思想是解决领域服务,而不是领域对象

DI 的主要思想是提供一种机制,允许您将抽象类型(接口(interface)或抽象类)解析为具体类型。您的示例没有抽象类型,因此没有多大意义。

关于c# - C#/Unity 中的构造函数注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2015308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com