繁体   English   中英

如何从列表中序列化一个类?

[英]How to Serialize a class from list?

我有一个类的列表,我想知道如何将其序列化为XElement

例如我有一个课:

    [DataContract]
    public class Order 
    {
        [DataMember]
        public int OrderId { get; set; }

        [DataMember]
        public string OrderTitle { get; set; }

        [DataMember]
        public string DestinationAddress { get; set; }

        [DataMember]
        public string PhoneNumber { get; set; }
    }

现在,我有了上述类的列表,我想知道如何序列化它?

enter var templates = from t in response.Descendants("OrderList")
                                    select new
                                    {
                                        orderId = t.Element("OrderId").Value.ToString(),
                                        orderTitle = t.Element("OrderTitle").Value.ToString(),
                                        DestinationAddress = t.Element("DestinationAddress").Value.ToString(),
                                        PhoneNumber = t.Element("PhoneNumber").Value.ToString()
                                    };code here

在将arrayOfNotaryOrderDocumentsSet.ToList()情况下,执行上述方法, arrayOfNotaryOrderDocumentsSet.ToList()可以根据需要选择节点名称。 我已Order

构造列表List<Order> ..使用Serializator类(来自Code Project)

public class Serializator
{
    public static string SerializeLinqList<T>(List<T> list)
    {
        DataContractSerializer dcs = new DataContractSerializer(typeof(List<T>));
        StringBuilder sb = new StringBuilder();
        using (XmlWriter writer = XmlWriter.Create(sb))
        {
            dcs.WriteObject(writer, list);
        }
        return sb.ToString();
    }

    public static List<T> DeserializeLinqList<T>(string xml)
    {
        List<T> list;

        DataContractSerializer dcs = new DataContractSerializer(typeof(List<T>));

        using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
        {
            list = dcs.ReadObject(reader) as List<T>;
        }
        if (list == null) list = new List<T>();
        return list;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM