2013-12-10 86 views
0

未知的类型我有这个方法序列化我的对象:序列化与DataContractJsonSerializer

private static byte[] GetBytes(object obj) { 
     byte[] result; 
     using (MemoryStream ms = new MemoryStream()) { 
      DataContractJsonSerializer ser = new DataContractJsonSerializer(obj.GetType()); 

      ser.WriteObject(ms, obj); 
      result = ms.ToArray(); 
      ms.Close(); 
     } 
     return result; 
    } 

这是正常的,当我想用​​这个,我的目标参数必须与修饰类[System.Runtime.Serialization .DataContract]及其成员必须用[System.Runtime.Serialization.DataMember],但装修怎么样时,我想用未知类型,如:

var myVar = GetBytes(new { Name = "MyName", LastName = "LastName" }); 

我怎么可以装饰未知类型的属性

回答

1

DataContractJsonSerializer不适用于匿名类型。如果定义具有DataContract的特定类型不可能/不合理,请考虑简单地通过线路发送字典。

看看这个帖子也How do I serialize a C# anonymous type to a JSON string?

+0

你发给我的链接,有人说使用JavaScriptSerializer,这个类是在System.Web.Extensions.dll中,但我不能在Silverlight中使用它,其他人说使用Newtonsoft JSON.NET,但也不能在Silverlight中使用,谢谢 –

+0

Quote:“Json.NET支持Windows,Silverlight,Windows Phone,Mono,MonoTouch和MonoDroid” – atomaras

+0

是的,我必须使用Portable40版本,谢谢 –

相关问题