Хорошо, так .....
<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;
Ошибка!
The type or namespace ReadOnlyNameValueCollection does not exist in the namespace System.Configuration. Are you missing an assembly reference?
э-э-э-э-э-э-э?
Приведение к System.Collections.Specialized.NameValueCollection
заставляет код работать, но я не совсем понимаю, почему ошибка.
И поиск по ReadOnlyNameValueCollection
в MSDN показывает, что документации по этому классу вообще нет. Кажется, не существует. Тем не менее, у меня есть экземпляр этого типа в моем коде.