繁体   English   中英

C#web.config服务列表

[英]C# web.config List of services

我想将服务列表(服务器和服务名称)存储在web.config文件中。
可以有任何数字,我需要能够按停止/开始顺序对其进行排序。

当然,我可以通过多种方式来执行此操作,但这是我需要一次又一次地执行的操作,并且我正在寻找最优雅的解决方案。

那么什么是最优雅的解决方案
(a)在web.config中存储多个多属性元素(serviceName,serverName,order),以及
(b)按指定顺序排序

感谢您的所有建议:)

然后将其保存在xml文件中,并使用linq进行xml查询,并根据需要对其进行排序

创建一个Custom ConfigurationSection ,这使您可以定义自己的Configuration Secion,元素和对集合的排序,如何管理重复条目等。

这些行很简单:

<section name="myServices" type="MyNameSpace.MyCustomConfigurationSectionHandler, MyAssembly, Version=1.0.0.0, Culture=neutral" restartOnExternalChanges="false" requirePermission="false" />

// I've placed order into the setting in case it is to be persisted or predefined
<myServices>    
  <add serviceName="MyFirstService" serverName="MyService" order="0" />
</myServices>

通常,在.config中,您的appSettings中只有键/值对。 但是,如果您有两个以上的项目,则可以选择一个定界符来拆分值字符串中的其他项目。 每个项目仅基于位置,并且您可以根据需要使用任意多个逗号分隔值。 您可以为键使用任何值,并且始终可以在LINQ中进行排序。

       <appSettings>
          <add key="order" value="servername, ipaddress, anothervalue"/>
       </appSettings>

       var cfg = ConfigurationManager.AppSettings;

        var servers =
            from key in cfg.AllKeys
            select new {
                order = key,
                servername = cfg[key].Split(',')[0],
                ipaddress = cfg[key].Split(',')[1],
                anothervalue = cfg[key].Split(',')[2]
            };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM