我的工作流服務中有一個變量存在特殊問題。它是來自REST服務ContactContract[]
的一組數據合同。當這個數組爲空時,一切都很好,並且工作流程可以正常進行。但是,如果數組中有任何項目,則在我的活動之外發生堆棧溢出,不幸的是我無法精確定位特定點。WF4的序列化問題
因此,在對象圖中存在週期時,我看到類似前面DataContractSerializer
的東西,我寫了一個單元測試來試用它。測試失敗,出現以下異常:
System.Xaml.XamlObjectReaderException:無法序列類型 'System.Runtime.Serialization.ExtensionDataObject'。確認 類型是公共的,並且具有默認構造函數或實例 描述符。
而且測試:
[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聯繫人列表中,但它是巨大的)
我推測這是因爲合同實現IExtensibleDataObject
支持版本好一點。
這不是我預期的堆棧溢出,但我敢打賭它是相關的。
有沒有人遇到這些問題或有任何建議?
很難說沒有偷看ContactContract。 – Will