[英]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.