2009-08-14 88 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