2013-09-04 2 views
1

Я хотел бы создать раздел в моем файле web.config, как это:Как использовать специальный обработчик раздела без реализации интерфейса IConfigurationSectionHandler?

<paths> 
                <path>\\123.123.132.123\c$\test\folder</path> 
                <path>\\123.123.132.123\c$\test\folder</path> 
</paths> 

Я ищу альтернативы, я хотел бы использовать один из обработчиков секции по умолчанию, но я только мог найти раздел обработчиков что будет работать с этой конфигурацией

<CustomGroup> 
     <add key="key1" value="value1"/> 
</CustomGroup> 

(что бы SingleTagSectionHandlers, DictionarySectionHandlers, NameValueSectionHandler и так далее).

Есть ли способ заменить тег < add> на тег <? Или мне нужно реализовать интерфейс IConfigurationSectionHandler?

+0

Я не нашел альтернативы, когда должен был это сделать. Но это действительно не так сложно реализовать. –

+0

Да, это не сложно, но я бы предпочел не иметь этот новый класс в проекте, но я думаю, что это способ сделать это. – JSBach

ответ

2

Должен ли я реализовать интерфейс IConfigurationSectionHandler?

Вам не нужно, если вы используете System.Configuration.IgnoreSectionHandler.

web.config

<configuration> 
    <configSections> 
    <section name="Paths" type="System.Configuration.IgnoreSectionHandler" /> 
    </configSections> 
    <Paths> 
    <path>\\123.123.132.123\c$\test\folder</path> 
    <path>\\123.123.132.123\c$\test\folder</path> 
    </Paths> 

Затем вы можете вручную прочитать web.config с все, что вы хотите, чтобы ваши ценности.

public IEnumerable<string> GetPathsFromConfig() 
{ 
    var xdoc = XDocument.Load(ConfigurationManager 
    .OpenExeConfiguration(ConfigurationUserLevel.None) 
    .FilePath); 

    var paths = xdoc.Descendants("Paths") 
    .Descendants("path") 
    .Select(x => x.Value); 

    return paths 
} 

Другой мудрый вам нужно будет Create Custom Configuration Sections Using ConfigurationSection (how-to).

+0

Да, я создам настраиваемый раздел конфигурации тогда :) tks – JSBach

+1

@Oscar FYI you не может создать раздел с элементами, содержащими элементы конфигурации текста, которые должны отображать свойства в атрибуты. Итак, для вашего случая лучше проигнорировать раздел и проанализировать его вручную. –

+0

Вы правы, только заметили это. Я изменил макет для :) спасибо за информацию! – JSBach

Смежные вопросы