Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从列表序列化类?_C# - Fatal编程技术网

C# 如何从列表序列化类?

C# 如何从列表序列化类?,c#,C#,我有一个类的列表,我想知道如何将它序列化到XElement 例如,我有一门课: [DataContract] public class Order { [DataMember] public int OrderId { get; set; } [DataMember] public string OrderTitle { get; set; } [DataMember]

我有一个类的列表,我想知道如何将它序列化到
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()
将作为您的订单列表,您可以根据需要选择节点名称。我已经下了
命令

构建您的列表
列表
。。使用序列化器类(来自代码项目)

公共类序列化程序
{
公共静态字符串序列化LinqList(列表)
{
DataContractSerializer dcs=新的DataContractSerializer(类型(列表));
StringBuilder sb=新的StringBuilder();
使用(XmlWriter=XmlWriter.Create(sb))
{
dcs.WriteObject(编写器,列表);
}
使某人返回字符串();
}
公共静态列表反序列化LinqList(字符串xml)
{
名单;
DataContractSerializer dcs=新的DataContractSerializer(类型(列表));
使用(XmlReader=XmlReader.Create(新的StringReader(xml)))
{
列表=dcs.ReadObject(读卡器)作为列表;
}
如果(list==null)list=newlist();
退货清单;
}
}

您需要使用
NetDataContractSerializer
DataContractSerializer
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;
    }
}