gpt4 book ai didi

c# - 从 app.config 注入(inject)连接字符串 vs 从 BaseDataProvider 类读取它

转载 作者:行者123 更新时间:2023-11-30 22:31:48 26 4
gpt4 key购买 nike

从 Global.asax.cs 中注入(inject)数据库连接字符串有什么好处吗?ASP.NET MVC 中的类与从访问 app.config 文件的 BaseDataProvider 类读取连接字符串的方法相比?

最佳答案

我更喜欢使用构造函数注入(inject)来注入(inject)任何需要的对象(只要可能)。

我看到的一个小优势是关于类的依赖关系的透明度。

例如,如果您尝试在测试工具中实例化一个类(在进行集成测试时):

  • 在第一种情况(构造函数注入(inject))中,您会立即看到它需要一个连接字符串并提供一个
  • 在第二种情况下,您实例化该类(可能使用默认构造函数),经过反复试验后发现它取决于正在设置的 ConnectionString 属性

更新:构造函数注入(inject)方法的另一个优点是它将类本身与从 app.config 获取连接字符串的机制分离。

这可能会在您现在甚至没有想到的 future 场景中启用。

例如,在我目前从事的一个项目中,我有一个具有数据库访问权限的组件,并且我在多个上下文中重复使用了它。在其中一些中,它使用来自配置文件的标准连接字符串,而在另一些中,我有另一个组件根据某些条件决定使用哪个连接字符串。

如果您选择第二种方法,则需要更改代码以支持此类功能。

关于c# - 从 app.config 注入(inject)连接字符串 vs 从 BaseDataProvider 类读取它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9024780/

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