1

さて、私はJavaScriptSerializerを使用してこのコードを操作しようとしています。ただし、最後の行に達するとクラッシュします。

Dim json As New String(sr.Serialize(dt))

このエラーメッセージが表示されます。

タイプ'System.Reflection.Module'のオブジェクトをシリアル化しているときに、循環参照が検出されました。

この問題の解決に役立つ洞察をいただければ幸いです。

4

2 に答える 2

4

循環参照とは、オブジェクトをシリアル化すると無限ループになることを意味します。たとえば、オブジェクト「B」への1対1の参照を持つオブジェクト「A」をシリアル化しようとする場合。

この問題を解決するために、JSONでシリアル化するデータを含むクラスを宣言します。

于 2010-02-21T22:00:50.057 に答える
2

hkda150がすでに述べたように、シリアル化用に特別に調整されたクラスを使用できます。

これにより、関連する完全なオブジェクトをシリアル化する代わりに、外部キー値をシリアル化することができます。したがって、タイプBのプロパティa.SomeBを持つオブジェクトaをシリアル化する場合、多くの場合、a.someBのIDをWebページに表示する必要があります。明らかに、これがあなたの特定のユースケースに関連しているかどうかを言うことができるほど十分にわかりません。

ところで、「ビジネスオブジェクト」と「シリアル化用のオブジェクト」の間で多くのマッピングを行っていることに気付いた場合は、 AutoMapperの使用を検討することをお勧めします。

于 2010-02-21T22:14:28.527 に答える