我的工作流服务中的变量存在一个特殊问题。它是来自REST服务ContactContract[]
的数据提取的数组。当这个数组为空时,一切都很好,工作流程正确继续。但是,如果数组中有任何项目在我的活动之外发生堆栈溢出,我不能不幸地找到特定的位置。
所以,在对象图中存在循环时,在DataContractSerializer
之前看过类似的东西,我写了一个单元测试来试试。测试失败,但有以下例外:
System.Xaml.XamlObjectReaderException:无法序列化类型 ' System.Runtime.Serialization.ExtensionDataObject&#39 ;.验证 type是public,并且具有默认构造函数或实例 描述符。
测试:
[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 :(得分:0)
好的我现在觉得自己像个白痴。事实证明,这不是工作流崩溃,而是WcfTestClient b / c它无法弄清楚如何显示联系合同。