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;}
}