gpt4 book ai didi

c# - ReadOnlyNameValueCollection(从 ConfigurationManager.GetSection 读取)

转载 作者:太空狗 更新时间:2023-10-29 20:01:55 24 4
gpt4 key购买 nike

好的,所以......

<section name="test" type="System.Configuration.NameValueFileSectionHandler" />
<test>
<add key="foo" value="bar" />
</test>

var test = ConfigurationManager.GetSection("test");

到目前为止一切顺利。调试器显示 test 包含一个键 foo

但是 GetSection 返回 object,所以我们需要一个转换:

var type = test.GetType();
// FullName: System.Configuration.ReadOnlyNameValueCollection
// Assembly: System

好的,这应该很简单。所以....

using System;

var test = ConfigurationManager
.GetSection("test") as ReadOnlyNameValueCollection;

错误!

namespace System.Configuration 中不存在类型或 namespace ReadOnlyNameValueCollection。您是否缺少程序集引用?

呃……wtf?

转换为 System.Collections.Specialized.NameValueCollection 可以使代码正常工作,但我真的不明白为什么会出现错误。

在 MSDN 上搜索 ReadOnlyNameValueCollection 显示根本没有关于此类的文档。它似乎不存在。但是我的代码中有一个该类型的实例。

最佳答案

System.Configuration.ReadOnlyNameValueCollection 是 System.dll 程序集的内部类。所以你不能从你的代码中引用它。不过,它派生自 System.Collections.Specialized.NameValueCollection,所以这就是您可以通过强制转换实现这一点的原因。

关于c# - ReadOnlyNameValueCollection(从 ConfigurationManager.GetSection 读取),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6019228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com