【发布时间】:2011-01-20 14:28:58
【问题描述】:
我的服务有这样的方法
[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
}
出现此错误的所有崩溃:
尝试执行时出错 序列化参数: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 了解更多信息 详情。
public System.IAsyncResult BeginCallMethod(string param1, string param2, System.Collections.ObjectModel.ObservableCollection<object> myarray, System.AsyncCallback callback, object asyncState) {
object[] _args = new object[3];
_args[0] = param1;
_args[1] = param2;
_args[2] = myarray;
System.IAsyncResult _result = base.BeginInvoke("MyMethod", _args, callback, asyncState); <--here it craches
return _result;
}
我做错了什么?我该如何解决这个问题?
【问题讨论】:
标签: silverlight serialization wcf