我有一个应用程序,我需要具有特定业务实体(即国家)的配置设置。这个配置会是这样的:配置设置属性动态读取
<country value="US">
<metadata>
<key name="filePath" value="c:\blah">
<key name="wsPath" value="http://blah.com">
</metadata>
<sublayouts>
<template value="division">
<key name="path" value="c:\blah\file.txt">
</division>
</sublayouts>
</country>
<country value="FR">
<metadata>
<key name="filePath" value="c:\blah">
<key name="wsPath" value="http://blah.com">
</metadata>
<sublayouts>
<template value="division">
<key name="path" value="c:\blah\file.txt">
</division>
</sublayouts>
</country>
我要的是能够读入,因为我在现场静态对象这种所以,对于美国网站,它会在整个国家的加载值=“US”的节点。一旦加载,我希望能够阅读它喜欢:
string var = Config.metaData.filePath
OR
string var = Config.sublayouts.template["division"].path;
这甚至是可行的?有没有一个好的设计模式(不是太困难),这样做?只要有意义,我完全愿意改变XML的结构。我希望能够在需要时添加新的部分。基本上,这个想法是有一个灵活的配置系统,不难以编程方式维护。
不错!有没有办法动态地设置属性的名称?类似于:Country.Metadata =“blah” - 但名称“元数据”是动态的? – 2012-08-05 16:30:19
如果您想要动态,请将Country声明为动态:dynamic country = new ExpandoObject(); country.MetaData = metaData; – 2012-08-05 16:38:22
字符串元数据将来自字符串其他地方...你知道什么是国家的语法。“metadata”=“asdasd”其中“元数据”是一个变量? – 2012-08-05 16:40:00