2017-06-04 7 views
0

私はあなたのオブジェクトを正しくシリアライズできないならば、RDLCレポート生成が動作しないというハードな方法を学んだし、残念ながらそれは、さまざまな方法で失敗し、シリアライズすることはできませんあなたのオブジェクトやプロパティとは全く関係がないメッセージとする傾向があります/デシリアライズする。RDLCレポートではどのシリアライザが使用されていますか?

したがって、RDLCレポートの生成前に、私は、彼らが適切にシリアライズできることを確認するためにオブジェクトをテスト - これは、オブジェクトがレポートを生成しようとする前にシリアル化しない理由を正確に特定する初期の例外メッセージが表示されます。私はかなりどのシリアライザをテストするために働いていない以外 - 素晴らしい作品

。私は、BinaryFormatter、XmlSerializer、ObjectStateFormatterを試してみました。これらのそれぞれは、RDLCレポートに渡されたときに正常に機能するように見えるオブジェクトの一部をシリアル化することができません。つまり、実際にはRDLCレポートで使用できないオブジェクトを誤って識別していることがあります。したがって

- 誰もがRDLCレポートでオブジェクトが直列化される方法を正確に知っているのですか?

答えて

1

私はMicrosoft.ReportViewer.Common.dllのコードを見て、XMLにオブジェクトをシリアル化するためのカスタムコードを持っているようだが、その後、カスタムクラスのようなプリミティブ、配列、または構造体(でない子オブジェクトをシリアライズするSystem.Xml.dllXML Serializerを使用しています)。したがって、独自のカスタムシリアル化とXMLシリアライザの組み合わせを使用しているようです。

プロパティを介して参照されるすべてのカスタム子オブジェクトをXMLシリアライザで処理できる限り、ルートオブジェクトをシリアル化できると仮定するのが最善でしょう。

+0

ことをありがとう!また、逆アセンブラ(JetBrainsのdotPeek)をインストールするために私を促したので、今、私は(私はreferencesource.microsoft.com上のReportViewerを見つけることができなかったとして)を1つに精通していない – Etherman

+0

を再生するには、私のツールボックスの新しいおもちゃを持っています。私はTelerik JustDecompile(無償ダウンロード)を使用し、それをReport Viewerアセンブリに指摘しました。 –

関連する問題