使用DataContractJsonSerializer序列化未知类型

时间:2013-12-10 05:42:22

标签: c# silverlight serialization

我有这个方法来序列化我的对象:

    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 个答案:

答案 0 :(得分:1)

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

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