2012-02-21 6 views
1

NHibernate POCOクラスをXMLにシリアル化して、XSLT変換で使用する必要があります。私はDataContractSerializerを使ってみましたが、プロキシされたオブジェクトとISetメンバに含まれている1対多のマッピングを認識しないので失敗します。 DataContractSerializerを使用すべきか、これを達成する別の方法がありますか?次に、プロキシされたオブジェクト、カスタムクラス、およびセットで動作する汎用のDataContractResolverはありますか?シリアライズするだけで、デシリアライズしないことを念頭に置いてください。XMLへのNHibernate POCOのシリアライズ

答えて

2

私はあなたがnHibernate POCOをまったくシリアル化しない方が良いと主張します。
個人的には、私はいくつかのDTOを作成し、それらを直列化します。
その理由は、フルコントロールをシリアル化しています。
nHib POCOをシリアル化すると、コレクションのプロパティが設定されているかどうかわかりません。そうでない場合は、私に知らせずにnHibが何を入れているのか分かりません。

DTOに変換すると明示的に何をロード(およびシリアライズ)するのか、どうしないのかを決める利点があります。

BTW-サービスまたはそのようないくつかの上にそれらを送信するために、あなたのオブジェクトをシリアル化している場合、Ayendeは

+0

はい、非常に良いアドバイス:)あなたのためsome harsh (and true) wordsを持っていますが、この場合には、私は、XMLを変換していますローカルサーバー上のXSL-FOを使用してPDFに変換します。現在、ネイティブ接続を使用してDataTablesとDataSetsを使用していましたが、NHibernateを使用しているので、代替案を探していました。 –

+0

@AndrewWheelerああそうだ。あなたの場合、Ayendeのコメントは当てはまりません。しかし、私は、あなたのPOCOではなく、DTOをシリアライズする考え方はまだ成立していると考えています。 –

関連する問題