我正在尝试从配置文件中提取多个部分。我认为GetConfigNode("MyObject");
会将所有部分作为类型引入。我正在努力增强当前的应用程序,以前所有应用程序都有不同的类型。但是我需要为我需要添加的新部分使用相同的类型,它还需要是一个全新的部分(ProcessName不同)。现在,如果我运行它,只有一个部分被拉入列表,我不知道如何抓住任何具有相同名称的部分进入列表然后迭代。
我有一个包含一些映射信息的配置文件:
<Uploads>
<Upload ProcessName="ObjectName1" Type="MyObject">
<FieldMapping SourceField="Name" DestinationField="Name1"/>
</Upload>
<Upload ProcessName="ObjectName2" Type="MyObject">
<FieldMapping SourceField="Address" DestinationField="Address1"/>
</Upload>
</Uploads>
代码背后:
private static bool Upload()
{
List<UploadElement> UpEle = GetConfigNode("MyObject");
// rest of code
}
编辑 -
private static List<UploadElement> GetConfigNode(string node)
{
APIConfig Altx = ConfigurationManager.GetSection("Uploads") as APIConfig;
List<UploadElement> UpEle = new List<UploadElement>();
foreach (UploadElement t in Altx.Elements)
{
if (t.UploadType.ToString().ToLower() == node.ToLower()) UpEle.Add(t);
}
if (UpEle == null)
{
Console.WriteLine("no " + node + " node found"); Environment.Exit(99);
}
return UpEle;
}
ApiConfig:
public class APIConfig : ConfigurationSection
{
[ConfigurationProperty("", IsDefaultCollection = true)]
public UploadCollection Elements
{
get { return (UploadCollection)base[""]; }
}
}