私はワークフローサービスの変数に特有の問題があります。これは、RESTサービスのデータアクセス配列ContactContract[]
の配列です。この配列が空の場合、すべてがうまくいき、ワークフローは正しく継続されます。しかし、配列内に項目があると、アクティビティの外側でスタックオーバーフローが発生するため、残念なことに特定の場所を特定できません。WF4でのシリアル化の問題
このように、オブジェクトグラフにサイクルが存在する場合、DataContractSerializer
でこれまでのようなことを見て、私はそれを試してみるための単体テストを書いた。
System.Xaml.XamlObjectReaderException:テストは、次の例外で失敗タイプ をシリアル化できません 'System.Runtime.Serialization.ExtensionDataObject'。 タイプがpublicで、デフォルトのコンストラクタまたはインスタンス 記述子があることを確認します。私は契約が少し良くバージョン管理をサポートするために
IExtensibleDataObject
を実装しているため、これがある集まる[TestMethod] public void ContactArraySerialize() { var ser = new DataContractSerializer(typeof(ContactContract[])); var reader = new StringReader(Strings.SERIALIZED_CONTACT_LIST); var xmlReader = XmlReader.Create(reader); var list = ser.ReadObject(xmlReader) as ContactContract[]; var str = XamlServices.Save(list); }
(私は連絡先リストのXMLを追加しますが、それは巨大だ)
:
とテスト。
これは私が予想していたスタックオーバーフローではありませんが、関連していると思います。
これらの問題のいずれかが発生したことがありますか?
ContactContractを一から確認するのは難しいです。 – Will