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

弗兰克·西拉诺(Frank Silano)

重构代码时,我经常碰到这种情况。说我有一个基类,我读了一些配置参数并将其填充到这样的属性中

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值怎么办?那么我就可以将它们加载为私有道具,并在构造函数中对其进行初始化,并且引用类/调用者无需关心设置。

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,则无需依赖ConfigurationManagerclass。您可以创建一个构造函数并提供必要的数据:

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

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

如果FooClass属于Service Layer,那么在我看来,它有资格拥有对ConfigurationManager的依赖

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将空值传递给C#中Object和String作为参数的重载方法

来自分类Dev

如何将组合框值作为参数传递给C#中的Crystal Report

来自分类Dev

C#将类作为参数传递给方法,并在其中调用静态方法

来自分类Dev

C#将类作为参数传递给方法,并在其中调用静态方法

来自分类Dev

C ++将方法的指针数组作为参数传递给方法

来自分类Dev

C#将通用类作为参数传递给自定义方法

来自分类Dev

将实例作为参数传递给静态方法的字节预算委派实例方法

来自分类Dev

将值作为参数传递给规则

来自分类Dev

(C ++)将'this'传递给静态方法作为默认参数

来自分类Dev

C#-将委托作为参数传递给方法

来自分类Dev

将文件实例作为参数传递给带有Object参数的方法

来自分类Dev

将方法作为参数传递给PHP

来自分类Dev

将函数作为参数传递给方法

来自分类Dev

如何将方法(多个方法)作为参数传递给继承的void方法或C#中的委托?

来自分类Dev

C#将cmd参数传递给现有实例而不是新实例

来自分类Dev

将C#类属性作为方法中的参数传递

来自分类Dev

将参数从C#传递给Python

来自分类Dev

c#将参数传递给Action

来自分类Dev

将参数从C#传递给Python

来自分类Dev

C#将参数传递给Lambda

来自分类Dev

C#将参数传递给委托

来自分类Dev

将 C# 对象(包含静态对象成员)作为参数传递给 C++/CLI 程序

来自分类Dev

为什么我可以将null作为参数传递给方法,而不将null用作接受参数的实例?

来自分类Dev

我何时将类的实例作为self传递给方法?

来自分类Dev

如何在C#中将组合框值作为参数传递给Crystal Report

来自分类Dev

将 main 方法中定义的参数传递给实例方法?

来自分类Dev

将Ext.NET隐藏字段的值作为参数传递给Action方法

来自分类Dev

JQGrid:将JQGrid列值作为参数传递给cellurl中指定的控制器方法

来自分类Dev

Web api在将*作为输入值传递给api方法参数时给出错误

Related 相关文章

  1. 1

    将空值传递给C#中Object和String作为参数的重载方法

  2. 2

    如何将组合框值作为参数传递给C#中的Crystal Report

  3. 3

    C#将类作为参数传递给方法,并在其中调用静态方法

  4. 4

    C#将类作为参数传递给方法,并在其中调用静态方法

  5. 5

    C ++将方法的指针数组作为参数传递给方法

  6. 6

    C#将通用类作为参数传递给自定义方法

  7. 7

    将实例作为参数传递给静态方法的字节预算委派实例方法

  8. 8

    将值作为参数传递给规则

  9. 9

    (C ++)将'this'传递给静态方法作为默认参数

  10. 10

    C#-将委托作为参数传递给方法

  11. 11

    将文件实例作为参数传递给带有Object参数的方法

  12. 12

    将方法作为参数传递给PHP

  13. 13

    将函数作为参数传递给方法

  14. 14

    如何将方法(多个方法)作为参数传递给继承的void方法或C#中的委托?

  15. 15

    C#将cmd参数传递给现有实例而不是新实例

  16. 16

    将C#类属性作为方法中的参数传递

  17. 17

    将参数从C#传递给Python

  18. 18

    c#将参数传递给Action

  19. 19

    将参数从C#传递给Python

  20. 20

    C#将参数传递给Lambda

  21. 21

    C#将参数传递给委托

  22. 22

    将 C# 对象(包含静态对象成员)作为参数传递给 C++/CLI 程序

  23. 23

    为什么我可以将null作为参数传递给方法,而不将null用作接受参数的实例?

  24. 24

    我何时将类的实例作为self传递给方法?

  25. 25

    如何在C#中将组合框值作为参数传递给Crystal Report

  26. 26

    将 main 方法中定义的参数传递给实例方法?

  27. 27

    将Ext.NET隐藏字段的值作为参数传递给Action方法

  28. 28

    JQGrid:将JQGrid列值作为参数传递给cellurl中指定的控制器方法

  29. 29

    Web api在将*作为输入值传递给api方法参数时给出错误

热门标签

归档