Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.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# 在将配置节作为.NET ConfigurationCollection读取后,是否可以返回其他类型?_C#_.net_Collections_Configuration_App Config - Fatal编程技术网

C# 在将配置节作为.NET ConfigurationCollection读取后,是否可以返回其他类型?

C# 在将配置节作为.NET ConfigurationCollection读取后,是否可以返回其他类型?,c#,.net,collections,configuration,app-config,C#,.net,Collections,Configuration,App Config,我正在阅读app.config中的一个简单集合: <MongoInstances> <MongoInstance serverAddress="server1" /> <MongoInstance serverAddress="server2" /> </MongoInstances> 按预期工作,在MongoInstancesCollection对象中返回app.config信息 我希望此字段为其他类型,并将集合对象转换

我正在阅读app.config中的一个简单集合:

<MongoInstances>
      <MongoInstance serverAddress="server1" />
      <MongoInstance serverAddress="server2" />
</MongoInstances>
按预期工作,在MongoInstancesCollection对象中返回app.config信息

我希望此字段为其他类型,并将集合对象转换为IEnumerable,如下所示:

    [ConfigurationProperty("MongoInstances")]
    [ConfigurationCollection(typeof(MongoInstancesCollection), AddItemName = "MongoInstance")]
    public IEnumerable<MongoServerAddress> ServerUrls
    {
        get
        {
            IList<MongoServerAddress> result = new List<MongoServerAddress>();
            var collection = (MongoInstancesCollection)this["MongoInstances"];
            foreach (MongoInstance instance in collection)
            {
                result.Add(new MongoServerAddress(instance.Address));
            }

            return result;
        }
    }
谷歌搜索发现,如果我手动设置属性并从字段定义中删除ConfigurationProperty属性,它就会消失:

Properties.Add(new ConfigurationProperty("MongoInstances", typeof(MongoInstancesCollection), new MongoInstancesCollection()));
但现在我遇到了一个新的异常,我无法想出如何补救:

System.Configuration.ConfigurationErrorsException : Unrecognized element 'MongoInstance'

任何帮助都将不胜感激!谢谢

尝试类似的操作,并让MangoInstancesCollection从ConfigurationElementCollection和IEnumerable继承。

我的集合已实现IEnumerable。另外,在您引用的博客文章中,作者仍然将ConfigurationElementCollection作为其集合的返回类型,这正是我试图避免的。
Properties.Add(new ConfigurationProperty("MongoInstances", typeof(MongoInstancesCollection), new MongoInstancesCollection()));
System.Configuration.ConfigurationErrorsException : Unrecognized element 'MongoInstance'