Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.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# 扩展App.config中的元素_C#_.net_Configuration_App Config - Fatal编程技术网

C# 扩展App.config中的元素

C# 扩展App.config中的元素,c#,.net,configuration,app-config,C#,.net,Configuration,App Config,我们有一个app.config,我们正在与Carbonator一起使用: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="carbonator" type="Crypton.Carbonator.Config.CarbonatorSection, Crypton.Carbonator"/> </con

我们有一个
app.config
,我们正在与Carbonator一起使用:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="carbonator" type="Crypton.Carbonator.Config.CarbonatorSection, Crypton.Carbonator"/>
  </configSections>

  <carbonator defaultCulture="en-US" logLevel="1" collectionInterval="1000" reportingInterval="1000" >
    <statsd server="127.0.0.1" port="8125" />
    <counters>
      <add path="processor_information.pct_processor_time.total" category="Processor" counter="% Processor Time" instance="_Total" />
      <add path="memory.available_MBytes" category="Memory" counter="Available MBytes" instance="" />
      <add path="memory.pct_commited_bytes_in_use" category="Memory" counter="% Committed Bytes In Use" instance="" />
    </counters>
  </carbonator>
</configuration>

我们希望允许用户在从
元素引用的外部配置文件中配置自己的自定义计数器。例如,我们希望允许用户配置文件如下所示:

<add path="logical_disk.pct_free_space.C" category="LogicalDisk" counter="% Free Space" instance="C:" />
<add path="logical_disk.disk_read_bytes_per_sec.C" category="LogicalDisk" counter="Disk Read Bytes/sec" instance="C:" />
<add path="logical_disk.disk_write_bytes_per_sec.C" category="LogicalDisk" counter="Disk Write Bytes/sec" instance="C:" />

我甚至不知道这在
appConfig
元素之外是否可行,但非常感谢您的帮助。

根据它的说法,这应该是可能的。中也描述了相同的方法

但是我不认为这是一个好主意,因为有一个原因——如果用户在其配置扩展中出错,它将阻止应用程序执行,因为应用程序配置变得无效


我宁愿使用
app.config
文件中的配置来提供默认值,并自己实现一些用户配置。在这种情况下,您可以使用任何您喜欢的配置格式,例如,这对用户来说也会更好(更容易创建和编辑)。在应用程序中,您只需合并两种配置(
app.config
值是默认值,将被用户的配置覆盖)。

谢谢您的回答。我们仍在研究最佳方法,但我会记住你的建议。不客气。我肯定会为用户配置实现自定义配置,因为您可以控制一切。您可以向用户提供更好的错误消息(实际上是有意义的消息,因为关于格式错误的
app.config
的默认错误消息可能会让用户非常困惑)。