1

我的工作流服務中有一個變量存在特殊問題。它是來自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支持版本好一點。

這不是我預期的堆棧溢出,但我敢打賭它是相關的。

有沒有人遇到這些問題或有任何建議?

+0

很難說沒有偷看ContactContract。 – Will

回答

0

好吧我現在覺得自己像個白癡。事實證明,這不是工作流程崩潰,而是WcfTestClient b/c,它無法弄清楚如何顯示聯繫合同。