我有这个方法来序列化我的对象:
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" });
如何用属性
装饰未知类型答案 0 :(得分:1)
DataContractJsonSerializer不适用于匿名类型。如果定义具有DataContract的特定类型是不可能/合理的,则考虑简单地通过线路发送字典。
看一下这个帖子How do I serialize a C# anonymous type to a JSON string?。