Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在处理配置设置时使用或不使用嵌套类_C# - Fatal编程技术网

C# 在处理配置设置时使用或不使用嵌套类

C# 在处理配置设置时使用或不使用嵌套类,c#,C#,我的程序有一个ReportConfiguration类,用于存储报告的配置信息。从逻辑上讲,有许多区域需要配置,即某些类型的分区的显示方式等。一位朋友建议我将这些分区设置为嵌套类,以便: public abstract class ReportConfiguration{ private class AssessmentTypeConfiguration{ } } public class MyConfiguration : ReportConfigration{} 本质上

我的程序有一个ReportConfiguration类,用于存储报告的配置信息。从逻辑上讲,有许多区域需要配置,即某些类型的分区的显示方式等。一位朋友建议我将这些分区设置为嵌套类,以便:

public abstract class ReportConfiguration{
    private class AssessmentTypeConfiguration{
    }
} 

public class MyConfiguration : ReportConfigration{}
本质上,当我将要使用这些类时,我将把这些配置类公开给其他可能希望扩展某些功能或编写一些需要修改配置的工具的开发人员。因此,我希望它们能够扩展配置类,但可能有某些配置选项我不希望它们接触,或者在逻辑上看起来它们应该嵌套


问题是:是否有必要使用单独的类,或者只是为每个配置选项创建一个具有大量属性的非常大的类?

出于以下几个原因,我建议使用单独的类而不是一个巨大的类:

  • 它有助于将类似的信息组合在一起,以便更容易进行推理
  • 如果您想序列化和/或从配置文件(或多个文件)中读取它们所包含的信息,那么使用较小的类将更容易、更灵活
  • 如果您使用非静态类(或者曾经想要),并且要传递实例,那么传递有限的信息比传递一个万物皆在阳光下的巨大对象更有意义

您说有明确分开的配置区域,所以您应该有明确分开的类来匹配它。否则,您的单个类可能知道的太多。

您是否参考application.config配置?我只是看不到AssessmentTypeConfigurationNo的基本类型,这是一个自定义类。我的报告有不同类型的评估