配置文件中的多种类型C#

时间:2016-01-15 18:30:24

标签: c# xml app-config

我正在尝试从配置文件中提取多个部分。我认为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[""]; }
    }
}

0 个答案:

没有答案