Silverlight WCF字典序列化
我有一个服务,有这样一个方法Silverlight WCF字典序列化,silverlight,serialization,wcf,Silverlight,Serialization,Wcf,我有一个服务,有这样一个方法 [ServiceContract(Namespace = "")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class MyService { [OperationContract] public object MyMethod(strin
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class MyService
{
[OperationContract]
public object MyMethod(string param1, string param2, object[] myarray)
{
//do stuff
return result;
}
}
我从代码中调用我的方法,如下所示:
public Dictionary<string, object> MyDictionary{ get; set; }
serv.MyMethodCompleted += new EventHandler<MyServiceReference.MyMethodCompletedEventArgs>(serv_MyMethodCompleted);
serv.MyMethodAsync("param1","param2", new ObservableCollection<object>(){MyDictionary});
void serv_MyMethodCompleted(object sender, MyServiceReference.MyMethodCompletedEventArgs e)
{
//Happy happy joy joy
}
每个带有此错误的craches:
尝试删除时出错
序列化参数:myarray。这个
InnerException消息为“类型”
'System.Collections.Generic.Dictionary'2[[System.String,
mscorlib,版本=2.0.5.0,
文化=中立,
PublicKeyToken=7cec85d7bea7798e],[System.Object,
mscorlib,版本=2.0.5.0,
文化=中立,
PublicKeyToken=7cec85d7bea7798e]]
使用数据合同名称
'ArrayOfKeyValueOfstringanyType:http://schemas.microsoft.com/2003/10/Serialization/Arrays'
这是预料不到的。添加任何不需要的类型
静态已知到已知的列表
类型-例如,通过使用
KnownTypeAttribute属性或由
将它们添加到已知类型列表中
已传递给DataContractSerializer。“。
请参阅InnerException了解更多信息
细节
我做错了什么?如何修复此问题?myArray参数和返回值必须是强类型的,并带有DataContract和DataMember属性。myArray应该是类似集合的IEnumerable,可以序列化:
[DataContract]
class Item
{
[DataMember]
public string Name {get;set;}
[DataMember]
public double Cost {get;set;}
}
[DataContract]
class Item
{
[DataMember]
public string Name {get;set;}
[DataMember]
public double Cost {get;set;}
}