C# 为什么使用ConfigurationManager而不是读取自定义配置文件?

C# 为什么使用ConfigurationManager而不是读取自定义配置文件?,c#,configuration,C#,Configuration,我总是使用自己的配置文件格式,即XML,然后我只是将XML反序列化到项目中的对象中,或者只是将其读入XML文档中 这似乎更容易阅读和访问我需要的信息 今天早上我看了ConfigurationManager课程,仅仅读取一个配置文件似乎有点过于复杂 关于我为什么应该使用ConfigurationManager,是否存在任何争议 它只是.NET中的一个内置机制,已经为您实现了,因此您不需要任何额外的代码(可能除了将其包装在您自己的IConfig中以分离关注点之外) 有一个用于编辑.NET配置文件的G

我总是使用自己的配置文件格式,即XML,然后我只是将XML反序列化到项目中的对象中,或者只是将其读入XML文档中

这似乎更容易阅读和访问我需要的信息

今天早上我看了
ConfigurationManager
课程,仅仅读取一个配置文件似乎有点过于复杂

关于我为什么应该使用
ConfigurationManager
,是否存在任何争议

  • 它只是.NET中的一个内置机制,已经为您实现了,因此您不需要任何额外的代码(可能除了将其包装在您自己的
    IConfig
    中以分离关注点之外)

  • 有一个用于编辑.NET配置文件的GUI,有时很方便

  • 例如,ASP.NET应用程序在
    web.config
    发生更改时自动重新启动,而您需要一些自定义逻辑才能与自己的配置文件具有相同的行为


  • ConfigurationManager是在内部使用的,您没有义务以任何方式使用它,我以前也做过您所做的事情。现在这取决于,如果它是一个用户应该更改的文件,我可能仍然会进行自己的配置,否则该文件将作为嵌入式资源添加,我使用ConfigurationManager来读取它,因为我认为没有其他读取这些文件的方法。问题是,使用您喜欢的任何机制,ConfigurationManager提供了更多的封装和现成的utils类。

    web.config中的设置可以通过IIS管理器进行可视化编辑-这是一个额外的好处。一般来说,我觉得ConfigurationManager很容易使用。为什么要重新发明轮子?