2012-02-21 52 views
1

我想將我的NHibernate POCO類序列化爲XML以用於XSLT轉換。我試過使用DataContractSerializer,但是它失敗了,因爲它無法識別ISet成員中包含的代理對象和一對多映射。我應該使用DataContractSerializer還是有另一種方法來實現這一目標?其次,是否有一個通用的DataContractResolver,它可以處理代理對象,自定義類和集合?請記住,我只想序列化而不是反序列化。將NHibernate POCO序列化爲XML

回答

2

我認爲你最好不要序列化你的nHibernate POCO。
就個人而言,我會創建一些DTO,然後序列化這些DTO。
原因是我想完全控制我正在序列化。
如果我序列化一個nHib POCO,我不知道我的集合屬性是否被填充,如果不是,我不確定nHib在那裏不知道什麼。

轉換爲DTO會給我明確決定加載(和序列化)以及不該做什麼的優點。

BTW-如果你爲了在服務或一些這樣給他們序列化你的對象,Ayende有some harsh (and true) words你:)

+0

是的,非常好的建議,但在這種情況下,我將XML使用本地服務器上的XSL-FO轉換爲PDF。目前,我使用數據表和數據集使用本地連接,但由於我使用NHibernate,我一直在尋找替代品。 – 2012-02-21 20:00:16

+0

@AndrewWheeler哦,我明白了。所以艾恩德的評論不適用於你的情況。但是,我認爲序列化DTO而不是您的POCO的想法仍然成立。 – 2012-02-22 07:46:19