在我的WCF服務中,我將對象QualifiedNumber
定義爲KnownType
和ServiceKnown
類型。如果我在以下方法中使用QualifiedNumber
:爲什麼WCF不能傳遞字典中的對象?
這一個不起作用。它拋出一個異常,在部分內容:
元素「http://schemas.microsoft.com/2003/10/Serialization/Arrays:Value」包含的數據「http://schemas.datacontract.org/2004/07 ServiceLibrary.Web.Model:QualifiedNumber」數據合同。反序列化器不知道映射到此合約的任何類型。 無法反序列化,因爲QualifiedNumber的定義未知。
[OperationContract]
public Dictionary<int, object> TestDictionaryGet()
{
Dictionary<int, object> retDict = new Dictionary<int, object>();
retDict.Add(1, new QualifiedNumber(new decimal(1.2), "<"));
retDict.Add(2, "pass a simple string");
return retDict;
}
這一個不工作
public struct element
{
public int key;
public object value;
}
[OperationContract]
public List<element> TestElementListGet()
{
Dictionary<int, object> retDict = new Dictionary<int, object>();
retDict.Add(1, new QualifiedNumber(new decimal(1.2), "<"));
retDict.Add(2, "pass a simple string");
List<element> retElements = new List<element>();
foreach (KeyValuePair<int, object> item in retDict)
{
element newElement;
newElement.key = item.Key;
newElement.value = item.Value;
retElements.Add(newElement);
}
return retElements;
}
它是什麼導致異常的字典嗎?
友情提醒 - 你應該接受一些答案。 – 2011-05-10 17:18:42