В моей службе WCF у меня есть объект QualifiedNumber
, определенный как тип KnownType
и ServiceKnown
. Если бы я использовал QualifiedNumber
в следующих методах:
Этот НЕ работает. Он выдает исключение, которое частично гласит:
Элемент '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;
}
Что такого в словаре, который вызывает исключение?