gpt4 book ai didi

c# - 模型到 XML 文件映射 - 如何在 soucre XML 文件中找到反序列化对象的位置。

转载 作者:行者123 更新时间:2023-11-30 22:32:45 24 4
gpt4 key购买 nike

这是使用 C# 序列化程序将我的模型映射到 XML 文件的最佳方式。我的意思是,例如,如果我选择一个反序列化对象,我可以在 XML 文件中找到 xml 源文本。

最佳答案

我为您准备了一个工作示例,您可以进一步探索它。

using System;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
using System.Xml.Serialization;
using System.Collections.Generic;
using System.IO;


namespace ConsoleApplication5
{
public class Person
{
public int Age { get; set; }
public string Name { get; set; }
public int XMLLine { get; set; }
}
public class Persons : List<Person> { }

class Program
{

static void Main(string[] args)
{
//create your objects

Person p = new Person();
p.Age = 35;
p.Name = "Arnold";

Person p2 = new Person();
p2.Age = 36;
p2.Name = "Tom";

Persons ps = new Persons();
ps.Add(p);
ps.Add(p2);

//Serialize them to XML

XmlSerializer xs = new XmlSerializer(typeof(Persons));

XDocument d = new XDocument();

using (XmlWriter xw = d.CreateWriter())
xs.Serialize(xw, ps);

//print xml
//System.Diagnostics.Debug.WriteLine(d.ToString());

// it will produce following xml. You can save it to file.
//I have saved it to variable xml for demo



string xml = @"<ArrayOfPerson>
<Person>
<Age>35</Age>
<Name>Arnold</Name>
<XMLLine>0</XMLLine>
</Person>
<Person>
<Age>36</Age>
<Name>Tom</Name>
<XMLLine>0</XMLLine>
</Person>
</ArrayOfPerson>";




XDocument xdoc = XDocument.Parse(xml, LoadOptions.SetLineInfo);

// A little trick to get xml line
xdoc.Descendants("Person").All(a => { a.SetElementValue("XMLLine", ((IXmlLineInfo)a).HasLineInfo() ? ((IXmlLineInfo)a).LineNumber : -1); return true; });


//deserialize back to object

Persons pplz = xs.Deserialize((xdoc.CreateReader())) as Persons;

pplz.All(a => { Console.WriteLine(string.Format("Name {0} ,Age{1} ,Line number of object in XML File {2}", a.Name, a.Age, a.XMLLine)); return true; });

Console.ReadLine();

}
}
}

它会给你这样的结果

Name Arnold ,Age35 ,Line number of object in XML File 2

Name Tom ,Age36 ,Line number of object in XML File 7


关于c# - 模型到 XML 文件映射 - 如何在 soucre XML 文件中找到反序列化对象的位置。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8603493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com