gpt4 book ai didi

c# - 将配置值作为参数传递给实例方法 C#

转载 作者:行者123 更新时间:2023-12-03 14:32:24 25 4
gpt4 key购买 nike

我在重构代码时经常遇到这种情况。假设我有一个基类,我读取了一些配置参数并将它们填充到这样的属性中

public BaseClass()
{
_property1 = ConfigurationManager.AppSettings["AppSetting1"];
_property2 = ConfigurationManager.AppSettings["AppSetting2"];
_property3 = ConfigurationManager.AppSettings["AppSetting3"];
}

然后我像这样在另一个类中调用一个方法
OtherClass otherClass = new OtherClass();
var foo = otherClass.SomeMethod(_property1, _property2, _property3);

这样做更好吗?如果我只需要 OtherClass 类中的 AppSettings 值怎么办?然后我可以将它们作为私有(private) Prop 加载并在构造函数中初始化它们,并且引用类/调用者不需要关心设置。
public OtherClass()
{
_property1 = ConfigurationManager.AppSettings["AppSetting1"];
_property2 = ConfigurationManager.AppSettings["AppSetting2"];
_property3 = ConfigurationManager.AppSettings["AppSetting3"];
}

然后我的实现就是
OtherClass otherClass = new OtherClass();
var foo = otherClass.SomeMethod();

这让我很烦恼,但我不确定为什么。哪个是更好的做法,为什么?我很抱歉我遗漏了一些明显的东西。它有时会发生,哈哈。
谢谢-弗兰克

最佳答案

在我看来,这取决于你类(class)的目标。

如果类属于 domain classes , 所以不需要依赖 ConfigurationManager类(class)。您可以创建一个构造函数并提供必要的数据:

public class FooClass()
{
public Property1 {get; private set;}

public FooClass(string property1)
{
Property1 = property1;
}
}

如果 FooClass属于 Service Layer ,那么,在我看来,它有资格依赖 ConfigurationManager类(class)。

关于c# - 将配置值作为参数传递给实例方法 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60513170/

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