2010-06-11 2 views
1

У меня есть настраиваемый раздел конфигурации для библиотеки, и я хотел бы загрузить свой объект конфигурации из самой библиотеки.
Я обязан исправить группу и имя раздела конфигурации, например.Получение названия раздела конфигурации, зарегистрированного для определенного типа .net

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    <sectionGroup name="MyGroup"> 
     <section name="MySection" type="MyAssembly.MySection, MyAssembly"/> 
    </sectionGroup> 
    </configSections> 
    <MyGroup> 
    <MySection something="xxx" /> 
    </MyGroup> 
</configuration> 

MySection cfg = (MySection)ConfigurationManager.GetSection("MyGroup/MySection"); 

или есть способ получить путь к участку, зарегистрированному для данного типа, так, например, если пользователь поставил раздел конфигурации под группой с другим именем, я все еще могу получить его?
Что-то вроде

<sectionGroup name="AnotherGroupName"> 
    <section name="MySection" type="MyAssembly.MySection, MyAssembly"/> 
</sectionGroup> 

string sectionPath = SomeClass.GetSectionPath(typeof(MySection)); 
MySection cfg = (MySection)ConfigurationManager.GetSection(sectionPath); 

ответ

2

Там очень хороший способ, чтобы запретить пользователю переименовать группу. Жестко-кодовое название группы в коде, чтобы она больше не работала, когда она путается с именем. Размещение таких произвольных изменений маловероятно и вызывает больше проблем, чем решает. Если вас беспокоит столкновение имен, вы можете добавить публичное свойство, которое позволяет коду клиента переопределять имя группы.

+0

Я более или менее пришел к выводу, что это позволит ввести больше проблем, чем решить ... Я рад получить подтверждение :) –