C# 依赖注入-口语解释
最近我被要求用口语解释来表达DI 我回答说: (一) 我要去一家酒店。我点了食物。酒店管理人员让我清理盘子和盘子 清理表。因此,在这里,我是一个客户机,负责管理服务(实例化、执行、处理)。但DI将这些任务解耦,因此服务使用者无需担心控制服务的生命周期 (二) 他还问是否有任何microsoft API遵循DI?我回答(这是我的猜测)在WCF中,您可以使用ChannelFactory创建一个代理来控制工厂的生命周期 对于第(1)项,他说只有10%是正确的 对于第(2)项,他说这是工厂模式,而不是依赖注入 事实上,我的解释出了什么问题(除了我的英语不好)?这些问题的真正答案是什么C# 依赖注入-口语解释,c#,asp.net,dependency-injection,C#,Asp.net,Dependency Injection,最近我被要求用口语解释来表达DI 我回答说: (一) 我要去一家酒店。我点了食物。酒店管理人员让我清理盘子和盘子 清理表。因此,在这里,我是一个客户机,负责管理服务(实例化、执行、处理)。但DI将这些任务解耦,因此服务使用者无需担心控制服务的生命周期 (二) 他还问是否有任何microsoft API遵循DI?我回答(这是我的猜测)在WCF中,您可以使用ChannelFactory创建一个代理来控制工厂的生命周期 对于第(1)项,他说只有10%是正确的 对于第(2)项,他说这是工厂模式,而不是依
我在等待你有价值的建议。我认为你的第一个答案非常准确,尽管可以详细说明。这让我想起了这里的堆栈溢出 在我看来,最重要的DI模式是构造函数注入,但实际上很难在BCL中找到例子 但是,System.IO.StreamWriter就是一个例子。在众多的构造器中,它有这样一个:
public StreamWriter(Stream stream);
因为Stream是一个抽象类,所以它非常适合依赖项的描述,并且它被注入到StreamWriter中
您的WCF示例是一个抽象工厂。这是一个与DI相关的非常重要的模式,但不是DI本身。我认为“口语化”可能意味着使用非技术语言来描述,而不是给出一个真实的例子。因此:
我已经提到,Microsoft模式与实践/企业库通过Unity应用程序块(一种控制容器的反转)支持DI,我认为ASP.NET MVC库使用DI。考虑一下使用接口的情况。