C# 序列化自定义类c的一部分#
有没有一种方法可以在不序列化XML根的情况下序列化下面的类,我希望序列化从XMLArray开始 如果您需要更多信息,请告诉我C# 序列化自定义类c的一部分#,c#,serialization,C#,Serialization,有没有一种方法可以在不序列化XML根的情况下序列化下面的类,我希望序列化从XMLArray开始 如果您需要更多信息,请告诉我 [XMLRoot] public class Customers { List<Customer> _Customers = new List<Customer>(); [XmlArray("Customers")] [XmlArrayItem("Customer")] public List<Custome
[XMLRoot]
public class Customers
{
List<Customer> _Customers = new List<Customer>();
[XmlArray("Customers")]
[XmlArrayItem("Customer")]
public List<Customer> Customers
{
get { return _Customers; }
set { _Customers = value; }
}
}
public class Customer
{
string _test1;
string _test2;
public string test1
{
get { return _test1; }
set { _test1 = value; }
}
public string test2
{
get { return _test2; }
set { _test2 = value; }
}
}
[XMLRoot]
公共类客户
{
列表_客户=新列表();
[XmlArray(“客户”)]
[XmlArrayItem(“客户”)]
公开名单客户
{
获取{return\u Customers;}
设置{u Customers=value;}
}
}
公共类客户
{
字符串_test1;
字符串测试2;
公共字符串test1
{
获取{return\u test1;}
设置{u test1=value;}
}
公共字符串测试2
{
获取{return\u test2;}
设置{u test2=value;}
}
}
XML文档需要某种类型的根元素。你只是不想让root成为客户吗?然后,不要将Customer类标记为XmlRoot,而是标记将包含客户列表的内容,即
class Program
{
static void Main(string[] args)
{
Shop shop = new Shop()
{
Name = "Jack's Shop",
Customers = new List<Customer>()
{
new Customer() { FirstName = "Maynard", LastName = "Keating" },
}
};
XmlSerializer xmls = new XmlSerializer(typeof(Shop));
using (FileStream fs = File.Create("JacksShop.xml"))
xmls.Serialize(fs, shop);
}
}
[XmlRoot]
public class Shop
{
public string Name { get; set; }
public List<Customer> Customers { get; set; }
}
public class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
类程序
{
静态void Main(字符串[]参数)
{
商店=新商店
{
Name=“杰克的商店”,
客户=新列表()
{
新客户(){FirstName=“Maynard”,LastName=“Keating”},
}
};
XmlSerializer xmls=新的XmlSerializer(typeof(Shop));
使用(FileStream fs=File.Create(“jackshop.xml”))
序列化(fs,shop);
}
}
[XmlRoot]
公营商店
{
公共字符串名称{get;set;}
公共列表客户{get;set;}
}
公共类客户
{
公共字符串名{get;set;}
公共字符串LastName{get;set;}
}
为什么?是什么困扰着你?你必须序列化客户。客户而不是客户。