Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从app.config读取自定义对象列表_C#_Configuration_Settings_App Config - Fatal编程技术网

C# 如何从app.config读取自定义对象列表

C# 如何从app.config读取自定义对象列表,c#,configuration,settings,app-config,C#,Configuration,Settings,App Config,我在app.config中定义了自定义设置,但在阅读该部分时出错。它使用简单的结构工作,比如只读取一个概要文件,但一旦我有一个概要文件列表,它就会失败,并出现一个错误:“未知元素”profile“。谁能告诉我我做错了什么 这是我的app.config的一部分: <?xml version="1.0"?> <configuration> <configSections> <section name="DTester.Properties.Prof

我在app.config中定义了自定义设置,但在阅读该部分时出错。它使用简单的结构工作,比如只读取一个概要文件,但一旦我有一个概要文件列表,它就会失败,并出现一个错误:“未知元素”profile“。谁能告诉我我做错了什么

这是我的app.config的一部分:

<?xml version="1.0"?>
<configuration>
  <configSections>
   <section name="DTester.Properties.ProfileSection" type="DTester.Settings.ProfileSection, DTester"/>
  </configSections>

    <DTester.Properties.ProfileSection>
        <profiles>
            <profile site="test1" urlscheme="http" urldomain="localhost">
                <dataSource dataSource="test2" databaseName="test1" dbUserName="test1" dbUserPassword="test1" />
                <user userName="test" password="test" TOHSoftwareVersion="8" iOSVersion="3" deviceUDID="12312"/>
            </profile>

            <profile site="test2" urlscheme="http" urldomain="localhost" >
                <dataSource dataSource="test2" databaseName="test2" dbUserName="test2" dbUserPassword="test2" />
                <user userName="test" password="test" TOHSoftwareVersion="3" iOSVersion="8" deviceUDID="123122"/>
            </profile>
        </profiles>
    </DTester.Properties.ProfileSection>

  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>

我用这个工具得到了回复

下面是修改后的配置部分:

<DTesterConfiguration>
            <option cmpResWithOacis="true" valRecentRosterPat="false"  maxPatCount="1" maxResCount="3" maxDetCount="3" />
            <profiles defaultProfile="test1">
                <profile site="test1" urlscheme="http" urldomain="localhost">
                    <dataSource dataSource="test2" databaseName="test1" dbUserName="test1" dbUserPassword="test1" />
                    <user userName="test" password="test" TOHSoftwareVersion="dfdf" iOSVersion="dfdf" deviceUDID="dfdf"/>
                </profile>

                <profile site="test2" urlscheme="http" urldomain="localhost" >
                    <dataSource dataSource="test2" databaseName="test2" dbUserName="test2" dbUserPassword="test2" />
                    <user userName="test" password="test" TOHSoftwareVersion="dfdf" iOSVersion="dfdf" deviceUDID="dfdfdf"/>
                </profile>

            </profiles>
    </DTesterConfiguration>

代码如下:

public sealed class DTesterConfiguration
{

    private static DTesterConfigurationSection _config;

    static DTesterConfiguration()
    {
        _config = ((DTesterConfigurationSection)(global::System.Configuration.ConfigurationManager.GetSection("DTesterConfiguration")));
    }

    private DTesterConfiguration()
    {
    }

    public static DTesterConfigurationSection Config
    {
        get
        {
            return _config;
        }
    }
}

public sealed partial class DTesterConfigurationSection : System.Configuration.ConfigurationSection
{

    [System.Configuration.ConfigurationPropertyAttribute("profiles")]
    [System.Configuration.ConfigurationCollectionAttribute(typeof(ProfilesElementCollection.ProfileElement), AddItemName = "profile")]
    public ProfilesElementCollection Profiles
    {
        get
        {
            return ((ProfilesElementCollection)(this["profiles"]));
        }
    }

    [System.Configuration.ConfigurationPropertyAttribute("option")]
    //[System.Configuration.ConfigurationCollectionAttribute(typeof(OptionElement), AddItemName = "option")]
    public OptionElement Option
    {
        get
        {
            return ((OptionElement)(this["option"]));
        }
    }


    //<option cmpResWithOacis="true" valRecentRosterPat="false"  maxPatCount="10" maxResCount="3" maxDetCount="3" />
    public sealed partial class OptionElement : System.Configuration.ConfigurationElement
    {

        [System.Configuration.ConfigurationPropertyAttribute("cmpResWithOacis", IsRequired = true)]
        public bool CmpResWithOacis
        {
            get
            {
                return ((bool)(this["cmpResWithOacis"]));
            }
            set
            {
                this["cmpResWithOacis"] = value;
            }
        }

        [System.Configuration.ConfigurationPropertyAttribute("valRecentRosterPat", IsRequired = true)]
        public bool ValRecentRosterPat
        {
            get
            {
                return ((bool)(this["valRecentRosterPat"]));
            }
            set
            {
                this["valRecentRosterPat"] = value;
            }
        }

        [System.Configuration.ConfigurationPropertyAttribute("maxPatCount", IsRequired = true)]
        public long MaxPatCount
        {
            get
            {
                return ((long)(this["maxPatCount"]));
            }
            set
            {
                this["maxPatCount"] = value;
            }
        }

        [System.Configuration.ConfigurationPropertyAttribute("maxResCount", IsRequired = true)]
        public long MaxResCount
        {
            get
            {
                return ((long)(this["maxResCount"]));
            }
            set
            {
                this["maxResCount"] = value;
            }
        }

        [System.Configuration.ConfigurationPropertyAttribute("maxDetCount", IsRequired = true)]
        public long MaxDetCount
        {
            get
            {
                return ((long)(this["maxDetCount"]));
            }
            set
            {
                this["maxDetCount"] = value;
            }
        }


    }

    public sealed partial class ProfilesElementCollection : System.Configuration.ConfigurationElementCollection
    {

        [System.Configuration.ConfigurationPropertyAttribute("defaultProfile", IsRequired = true)]
        public string DefaultProfile
        {
            get
            {
                return ((string)(this["defaultProfile"]));
            }
            set
            {
                this["defaultProfile"] = value;
            }
        }

        public ProfileElement this[int i]
        {
            get
            {
                return ((ProfileElement)(this.BaseGet(i)));
            }
        }

        protected override System.Configuration.ConfigurationElement CreateNewElement()
        {
            return new ProfileElement();
        }

        protected override object GetElementKey(System.Configuration.ConfigurationElement element)
        {
            return ((ProfileElement)(element)).Site;
        }

        public sealed partial class ProfileElement : System.Configuration.ConfigurationElement
        {

            [System.Configuration.ConfigurationPropertyAttribute("site", IsRequired = true)]
            public string Site
            {
                get
                {
                    return ((string)(this["site"]));
                }
                set
                {
                    this["site"] = value;
                }
            }

            [System.Configuration.ConfigurationPropertyAttribute("urlscheme", IsRequired = true)]
            public string Urlscheme
            {
                get
                {
                    return ((string)(this["urlscheme"]));
                }
                set
                {
                    this["urlscheme"] = value;
                }
            }

            [System.Configuration.ConfigurationPropertyAttribute("urldomain", IsRequired = true)]
            public string Urldomain
            {
                get
                {
                    return ((string)(this["urldomain"]));
                }
                set
                {
                    this["urldomain"] = value;
                }
            }

            [System.Configuration.ConfigurationPropertyAttribute("dataSource")]
            public DataSourceElement DataSource
            {
                get
                {
                    return ((DataSourceElement)(this["dataSource"]));
                }
            }

            [System.Configuration.ConfigurationPropertyAttribute("user")]
            public UserElement User
            {
                get
                {
                    return ((UserElement)(this["user"]));
                }
            }



            public sealed partial class DataSourceElement : System.Configuration.ConfigurationElement
            {

                [System.Configuration.ConfigurationPropertyAttribute("dataSource", IsRequired = true)]
                public string DataSource
                {
                    get
                    {
                        return ((string)(this["dataSource"]));
                    }
                    set
                    {
                        this["dataSource"] = value;
                    }
                }

                [System.Configuration.ConfigurationPropertyAttribute("databaseName", IsRequired = true)]
                public string DatabaseName
                {
                    get
                    {
                        return ((string)(this["databaseName"]));
                    }
                    set
                    {
                        this["databaseName"] = value;
                    }
                }

                [System.Configuration.ConfigurationPropertyAttribute("dbUserName", IsRequired = true)]
                public string DbUserName
                {
                    get
                    {
                        return ((string)(this["dbUserName"]));
                    }
                    set
                    {
                        this["dbUserName"] = value;
                    }
                }

                [System.Configuration.ConfigurationPropertyAttribute("dbUserPassword", IsRequired = true)]
                public string DbUserPassword
                {
                    get
                    {
                        return ((string)(this["dbUserPassword"]));
                    }
                    set
                    {
                        this["dbUserPassword"] = value;
                    }
                }
            }

            public sealed partial class UserElement : System.Configuration.ConfigurationElement
            {

                [System.Configuration.ConfigurationPropertyAttribute("userName", IsRequired = true)]
                public string UserName
                {
                    get
                    {
                        return ((string)(this["userName"]));
                    }
                    set
                    {
                        this["userName"] = value;
                    }
                }

                [System.Configuration.ConfigurationPropertyAttribute("password", IsRequired = true)]
                public string Password
                {
                    get
                    {
                        return ((string)(this["password"]));
                    }
                    set
                    {
                        this["password"] = value;
                    }
                }

                [System.Configuration.ConfigurationPropertyAttribute("TOHSoftwareVersion", IsRequired = true)]
                public string TOHSoftwareVersion
                {
                    get
                    {
                        return ((string)(this["TOHSoftwareVersion"]));
                    }
                    set
                    {
                        this["TOHSoftwareVersion"] = value;
                    }
                }

                [System.Configuration.ConfigurationPropertyAttribute("iOSVersion", IsRequired = true)]
                public string IOSVersion
                {
                    get
                    {
                        return ((string)(this["iOSVersion"]));
                    }
                    set
                    {
                        this["iOSVersion"] = value;
                    }
                }

                [System.Configuration.ConfigurationPropertyAttribute("deviceUDID", IsRequired = true)]
                public string DeviceUDID
                {
                    get
                    {
                        return ((string)(this["deviceUDID"]));
                    }
                    set
                    {
                        this["deviceUDID"] = value;
                    }
                }
            }
        }
    }
}
公共密封类DTE配置
{
私有静态DTesterConfigurationSection_config;
静态DTE配置()
{
_config=((DTesterConfigurationSection)(全局::System.Configuration.ConfigurationManager.GetSection(“DTesterConfiguration”));
}
私有DTE配置()
{
}
公共静态DTesterConfigurationSection配置
{
得到
{
返回_config;
}
}
}
公共密封部分类DTesterConfigurationSection:System.Configuration.ConfigurationSection
{
[System.Configuration.ConfigurationPropertyAttribute(“配置文件”)]
[System.Configuration.ConfigurationCollectionAttribute(typeof(ProfilesElementCollection.ProfileElement),AddItemName=“profile”)]
公共配置文件收集配置文件
{
得到
{
返回((ProfilesElementCollection)(此[“profiles”]);
}
}
[System.Configuration.ConfigurationPropertyAttribute(“选项”)]
//[System.Configuration.ConfigurationCollectionAttribute(typeof(OptionElement),AddItemName=“option”)]
公共期权
{
得到
{
返回((OptionElement)(本[“选项]));
}
}
//
公共密封部分类OptioneElement:System.Configuration.ConfigurationElement
{
[System.Configuration.ConfigurationPropertyAttribute(“cmpResWithOacis”,IsRequired=true)]
公共图书馆
{
得到
{
返回((bool)(此[“cmpResWithOacis”]);
}
设置
{
此[“cmpResWithOacis”]=值;
}
}
[System.Configuration.ConfigurationPropertyAttribute(“valRecentRosterPat”,IsRequired=true)]
公共布尔山谷
{
得到
{
返回((bool)(本[“valRecentRosterPat”]);
}
设置
{
此[“valRecentRosterPat”]=值;
}
}
[System.Configuration.ConfigurationPropertyAttribute(“maxPatCount”,IsRequired=true)]
公共长最大计数
{
得到
{
返回((长)(此[“maxPatCount”]);
}
设置
{
此[“maxPatCount”]=值;
}
}
[System.Configuration.ConfigurationPropertyAttribute(“maxResCount”,IsRequired=true)]
公共长重计数
{
得到
{
返回((长)(此[“最大重计数]));
}
设置
{
此[“maxResCount”]=值;
}
}
[System.Configuration.ConfigurationPropertyAttribute(“maxDetCount”,IsRequired=true)]
公共长最大计数
{
得到
{
返回((长)(此[“maxDetCount”]);
}
设置
{
此[“maxDetCount”]=值;
}
}
}
公共密封部分类概要文件SelementCollection:System.Configuration.ConfigurationElementCollection
{
[System.Configuration.ConfigurationPropertyAttribute(“defaultProfile”,IsRequired=true)]
公共字符串默认配置文件
{
得到
{
返回((字符串)(此[“defaultProfile”]);
}
设置
{
此[“defaultProfile”]=值;
}
}
公共ProfileElement此[int i]
{
得到
{
return((ProfileElement)(this.BaseGet(i));
}
}
受保护的覆盖System.Configuration.ConfigurationElement CreateNewElement()
{
返回新的ProfileElement();
}
受保护的覆盖对象GetElementKey(System.Configuration.ConfigurationElement元素)
{
返回((ProfileElement)(element)).Site;
}
公共密封部分类ProfileElement:System.Configuration.ConfigurationElement
{
[System.Configuration.ConfigurationPropertyAttribute(“站点”,IsRequired=true)]
公共字符串站点
{
得到
{
返回((字符串)(此[“站点]));
}
设置
{
此[“站点”]=值;
}
}
[System.Configuration.ConfigurationPropertyAttribute(“urlscheme”,IsRequired=true)]
公共字符串方案
{
得到
{
返回((字符串)(此[“urlscheme”]);
}
设置
{
此[“urlscheme”]=值;
}
}
[System.Configuration.ConfigurationPropertyAttribute(“urldomain”,IsRequired=true)]
公共字符串域
{
得到
{
返回((字符串)(此[“urldomain”]);
}
设置
{
此[“urldomain”]=值;
}
}
[System.Configuration.Confi
public sealed class DTesterConfiguration
{

    private static DTesterConfigurationSection _config;

    static DTesterConfiguration()
    {
        _config = ((DTesterConfigurationSection)(global::System.Configuration.ConfigurationManager.GetSection("DTesterConfiguration")));
    }

    private DTesterConfiguration()
    {
    }

    public static DTesterConfigurationSection Config
    {
        get
        {
            return _config;
        }
    }
}

public sealed partial class DTesterConfigurationSection : System.Configuration.ConfigurationSection
{

    [System.Configuration.ConfigurationPropertyAttribute("profiles")]
    [System.Configuration.ConfigurationCollectionAttribute(typeof(ProfilesElementCollection.ProfileElement), AddItemName = "profile")]
    public ProfilesElementCollection Profiles
    {
        get
        {
            return ((ProfilesElementCollection)(this["profiles"]));
        }
    }

    [System.Configuration.ConfigurationPropertyAttribute("option")]
    //[System.Configuration.ConfigurationCollectionAttribute(typeof(OptionElement), AddItemName = "option")]
    public OptionElement Option
    {
        get
        {
            return ((OptionElement)(this["option"]));
        }
    }


    //<option cmpResWithOacis="true" valRecentRosterPat="false"  maxPatCount="10" maxResCount="3" maxDetCount="3" />
    public sealed partial class OptionElement : System.Configuration.ConfigurationElement
    {

        [System.Configuration.ConfigurationPropertyAttribute("cmpResWithOacis", IsRequired = true)]
        public bool CmpResWithOacis
        {
            get
            {
                return ((bool)(this["cmpResWithOacis"]));
            }
            set
            {
                this["cmpResWithOacis"] = value;
            }
        }

        [System.Configuration.ConfigurationPropertyAttribute("valRecentRosterPat", IsRequired = true)]
        public bool ValRecentRosterPat
        {
            get
            {
                return ((bool)(this["valRecentRosterPat"]));
            }
            set
            {
                this["valRecentRosterPat"] = value;
            }
        }

        [System.Configuration.ConfigurationPropertyAttribute("maxPatCount", IsRequired = true)]
        public long MaxPatCount
        {
            get
            {
                return ((long)(this["maxPatCount"]));
            }
            set
            {
                this["maxPatCount"] = value;
            }
        }

        [System.Configuration.ConfigurationPropertyAttribute("maxResCount", IsRequired = true)]
        public long MaxResCount
        {
            get
            {
                return ((long)(this["maxResCount"]));
            }
            set
            {
                this["maxResCount"] = value;
            }
        }

        [System.Configuration.ConfigurationPropertyAttribute("maxDetCount", IsRequired = true)]
        public long MaxDetCount
        {
            get
            {
                return ((long)(this["maxDetCount"]));
            }
            set
            {
                this["maxDetCount"] = value;
            }
        }


    }

    public sealed partial class ProfilesElementCollection : System.Configuration.ConfigurationElementCollection
    {

        [System.Configuration.ConfigurationPropertyAttribute("defaultProfile", IsRequired = true)]
        public string DefaultProfile
        {
            get
            {
                return ((string)(this["defaultProfile"]));
            }
            set
            {
                this["defaultProfile"] = value;
            }
        }

        public ProfileElement this[int i]
        {
            get
            {
                return ((ProfileElement)(this.BaseGet(i)));
            }
        }

        protected override System.Configuration.ConfigurationElement CreateNewElement()
        {
            return new ProfileElement();
        }

        protected override object GetElementKey(System.Configuration.ConfigurationElement element)
        {
            return ((ProfileElement)(element)).Site;
        }

        public sealed partial class ProfileElement : System.Configuration.ConfigurationElement
        {

            [System.Configuration.ConfigurationPropertyAttribute("site", IsRequired = true)]
            public string Site
            {
                get
                {
                    return ((string)(this["site"]));
                }
                set
                {
                    this["site"] = value;
                }
            }

            [System.Configuration.ConfigurationPropertyAttribute("urlscheme", IsRequired = true)]
            public string Urlscheme
            {
                get
                {
                    return ((string)(this["urlscheme"]));
                }
                set
                {
                    this["urlscheme"] = value;
                }
            }

            [System.Configuration.ConfigurationPropertyAttribute("urldomain", IsRequired = true)]
            public string Urldomain
            {
                get
                {
                    return ((string)(this["urldomain"]));
                }
                set
                {
                    this["urldomain"] = value;
                }
            }

            [System.Configuration.ConfigurationPropertyAttribute("dataSource")]
            public DataSourceElement DataSource
            {
                get
                {
                    return ((DataSourceElement)(this["dataSource"]));
                }
            }

            [System.Configuration.ConfigurationPropertyAttribute("user")]
            public UserElement User
            {
                get
                {
                    return ((UserElement)(this["user"]));
                }
            }



            public sealed partial class DataSourceElement : System.Configuration.ConfigurationElement
            {

                [System.Configuration.ConfigurationPropertyAttribute("dataSource", IsRequired = true)]
                public string DataSource
                {
                    get
                    {
                        return ((string)(this["dataSource"]));
                    }
                    set
                    {
                        this["dataSource"] = value;
                    }
                }

                [System.Configuration.ConfigurationPropertyAttribute("databaseName", IsRequired = true)]
                public string DatabaseName
                {
                    get
                    {
                        return ((string)(this["databaseName"]));
                    }
                    set
                    {
                        this["databaseName"] = value;
                    }
                }

                [System.Configuration.ConfigurationPropertyAttribute("dbUserName", IsRequired = true)]
                public string DbUserName
                {
                    get
                    {
                        return ((string)(this["dbUserName"]));
                    }
                    set
                    {
                        this["dbUserName"] = value;
                    }
                }

                [System.Configuration.ConfigurationPropertyAttribute("dbUserPassword", IsRequired = true)]
                public string DbUserPassword
                {
                    get
                    {
                        return ((string)(this["dbUserPassword"]));
                    }
                    set
                    {
                        this["dbUserPassword"] = value;
                    }
                }
            }

            public sealed partial class UserElement : System.Configuration.ConfigurationElement
            {

                [System.Configuration.ConfigurationPropertyAttribute("userName", IsRequired = true)]
                public string UserName
                {
                    get
                    {
                        return ((string)(this["userName"]));
                    }
                    set
                    {
                        this["userName"] = value;
                    }
                }

                [System.Configuration.ConfigurationPropertyAttribute("password", IsRequired = true)]
                public string Password
                {
                    get
                    {
                        return ((string)(this["password"]));
                    }
                    set
                    {
                        this["password"] = value;
                    }
                }

                [System.Configuration.ConfigurationPropertyAttribute("TOHSoftwareVersion", IsRequired = true)]
                public string TOHSoftwareVersion
                {
                    get
                    {
                        return ((string)(this["TOHSoftwareVersion"]));
                    }
                    set
                    {
                        this["TOHSoftwareVersion"] = value;
                    }
                }

                [System.Configuration.ConfigurationPropertyAttribute("iOSVersion", IsRequired = true)]
                public string IOSVersion
                {
                    get
                    {
                        return ((string)(this["iOSVersion"]));
                    }
                    set
                    {
                        this["iOSVersion"] = value;
                    }
                }

                [System.Configuration.ConfigurationPropertyAttribute("deviceUDID", IsRequired = true)]
                public string DeviceUDID
                {
                    get
                    {
                        return ((string)(this["deviceUDID"]));
                    }
                    set
                    {
                        this["deviceUDID"] = value;
                    }
                }
            }
        }
    }
}