我想使用c#中的序列化生成一个xml文件。我是这门语言的新手。所以请给个提示。
我的xml文件的内容为-
<Employees>
<Employee>
<Emp id="1" name="Ajay" salary="20000"></Emp>
<Emp id="2" name="Vinay" salary="25000"></Emp>
<Emp id="3" name="Jay" salary="23000"></Emp>
</Employee>
</Employees>
定义与预期xml文本匹配的POCO(下面的示例(
public class Employees
{
[XmlArray("Employee")]
[XmlArrayItem(typeof(Emp), ElementName="Emp")]
public Emp[] Emps { get; set; }
}
public class Emp
{
[XmlAttribute("id")]
public int Id { get; set; }
[XmlAttribute("name")]
public string Name { get; set; }
[XmlAttribute("salary")]
public string Salary { get; set; }
}
然后构造对象并使用XmlSerialier将它们序列化
public static void SerializeXml()
{
Employees emps = new Employees()
{
Emps = new Emp[]
{
new Emp
{
Id = 1,
Name = "Ajay",
Salary = "23000",
}
}
};
XmlSerializer s = new XmlSerializer(typeof(Employees));
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add(string.Empty, string.Empty);
XmlWriterSettings settings = new XmlWriterSettings
{
Indent = true,
OmitXmlDeclaration = true
};
StringBuilder sb = new StringBuilder();
TextWriter w = new StringWriter(sb);
using (var writer = XmlWriter.Create(w, settings))
{
s.Serialize(writer, emps, namespaces);
}
Console.WriteLine(sb.ToString());
}
样品小提琴:https://dotnetfiddle.net/c4nMwr