gpt4 book ai didi

c# - .NET Framework 类的 Unity 最佳实践

转载 作者:太空宇宙 更新时间:2023-11-03 16:57:53 24 4
gpt4 key购买 nike

我刚刚开始使用任何 DI/IoC 工具集,并且有一个非常基本的问题。我正在使用 Unity,因为我们还将在整个应用程序中使用许多企业库 block 。

我的问题是关于 .NET 框架类的依赖性。例如,在我目前正在处理的一个类中,我需要创建 DirectoryInfo 类。根据我的理解,DI 中的最佳实践之一是永远不要使用“new”关键字——因为这会引入硬依赖。那么我应该如何获得一个新的 DirectoryInfo 呢?将它作为一个项目添加到容器中并让容器成为该类的依赖项?这似乎在现实生活中是不切实际的,因为我最终会用数百到数千个框架类配置容器。我认为那是一场维护噩梦。

最佳答案

在我看来,BCL(基类库)中的大多数类都是实用类,除了直接的调用图外,通常没有大量其他依赖项。

DI 旨在扁平化调用图并防止类之间的大量串扰。因此,事实上您对 BCL 的喋喋不休无能为力,您不妨接受它们的本来面目并继续使用新的...

您不想这样做的唯一原因是出于测试目的。您通常不会测试 BCL 类,但您可能想用模拟版本替换 BCL 类,这样它实际上不会做类所做的任何事情,只是假装这样做......你可以使用类似的东西SystemWrapper 在必要时执行此操作。

关于c# - .NET Framework 类的 Unity 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/864592/

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