2009-08-14 3 views
1

Я хотел бы использовать собственный собственный формат XML в своем Web.config. В .Net 1.1 я использовал IConfigurationSectionHandler в сочетании с XmlSerializer. Поскольку IConfigurationSectionHandler обесценивается, я хочу сделать то же самое с ConfigurationSection. Я пробовал так:Пользовательский xml de/serialization в ConfigurationSection (например, с помощью IConfigurationSectionHandler)

protected override void DeserializeSection(System.Xml.XmlReader reader) 
    { 
     // my custom code to deserialize data from reader 
    } 

Если я начинаю мое приложение, я получаю ошибку синтаксического анализа, говоря: «Непризнанный раздел конфигурации секции MySection/customChildNode». Это происходит до вызова DeserializeSection. Что я делаю не так? Любой намек на использование пользовательского xml в ConfigurationSection?

Edit: немного мор код с просьбой

Я пытался реализовать свой раздел, как это:

public class MySection : ConfigurationSection 
{ 
    protected override void DeserializeSection(XmlReader reader) 
    { 
     // my code 
    } 
} 

и зарегистрировать его в Web.config, как это:

<sectionGroup name="mySection" type="myNamspace.MySection, myAssembly"/> 

затем я стараюсь использовать его следующим образом:

<mySection> 
    <abc><xx/></abc> 
</mySection> 

Я бы предположил, что вызывается DeserializeSection моего ConfigurationSection и переданный в XmlReader разрешает доступ к содержащемуся пользовательскому XML. Но DeserializeSection не вызывается и возникает ошибка, указывающая, что mySection/abc неизвестен.

+0

Вам нужно будет немного показать больше кода, чем это. Пожалуйста, разместите достаточно кода для того, чтобы воспроизвести проблему. –

ответ

1

Попробуйте использовать <section> вместо <sectionGroup>.

+0

Глупая ошибка. ;-) Большое спасибо! – Achim

1

У меня есть статья о том, как создавать пользовательские разделы конфигурации без использования IConfigurationSectionHandler. Пожалуйста, посмотрите аттестат: //devpinoy.org/blogs/jakelite/archive/2009/01/10/iconfigurationsectionhandler-is-dead-long-live-iconfigurationsectionhandler.aspx

+1

ссылка не работает. –

+0

привет! вы можете найти исходный код по этой ссылке http://code.google.com/p/daemoniq/source/browse/#svn/trunk/src/Daemoniq/Configuration. И пример конфигурации находится здесь http://code.google.com/p/daemoniq/source/browse/trunk/src/Daemoniq.Samples/App.config –

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