2009-08-14 87 views
1

我想在我的Web.config中使用自己的自定义XML格式。在.net 1.1中,我使用了IConfigurationSectionHandler和XmlSerializer。由于IConfigurationSectionHandler已折旧,我想对ConfigurationSection执行相同的操作。我想这样的:ConfigurationSection中的自定义XML /序列化(如使用IConfigurationSectionHandler)

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

如果我开始我的申请,我得到一个分析器错误说:“无法识别的配置节mySection/customChildNode”。这发生在DeserializeSection被调用之前。我究竟做错了什么?任何提示如何在ConfigurationSection中使用自定义XML?

编辑:根据要求

有点铁道部代码我试图实现我的部分是这样的:

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> 

我会假设我的ConfigurationSection的DeserializeSection被调用,并通过XmlReader允许访问包含的自定义XML。但DeserializeSection没有被调用,并得到一个错误,说mySection/abc是未知的。

+0

你将不得不展示一下比这更多的代码。请发布足够的代码来重现问题。 – 2009-08-14 09:45:40

回答

1

尝试使用<section>而不是<sectionGroup>

+0

愚蠢的错误。 ;-) 非常感谢! – Achim 2009-08-14 12:11:14

1

我有一篇关于如何在不使用IConfigurationSectionHandler的情况下创建自定义配置节的文章。请看看http://devpinoy.org/blogs/jakelite/archive/2009/01/10/iconfigurationsectionhandler-is-dead-long-live-iconfigurationsectionhandler.aspx

+1

链接不起作用。 – 2010-11-23 17:20:59

+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找到。 – 2010-11-23 17:31:46