C# c中的主细节XML序列化#
我是XML新手,基本上我有这样的类:C# c中的主细节XML序列化#,c#,xml,serialization,C#,Xml,Serialization,我是XML新手,基本上我有这样的类: public class Items:List<string> { private string _name; public string Product { get {return _name;} set {_name=value;} } } <Items> <Product>product name</Product> <I
public class Items:List<string>
{
private string _name;
public string Product
{
get {return _name;}
set {_name=value;}
}
}
<Items>
<Product>product name</Product>
<Item> A1 </Item>
<Item> A2 </Item>
<Item> A3 </Item>
<Item> A4 </Item>
<Item> A5 </Item>
</Items>
公共类项目:列表
{
私有字符串\u名称;
公共字符串产品
{
获取{return\u name;}
设置{u name=value;}
}
}
我想序列化此类上的对象基,如下所示:
public class Items:List<string>
{
private string _name;
public string Product
{
get {return _name;}
set {_name=value;}
}
}
<Items>
<Product>product name</Product>
<Item> A1 </Item>
<Item> A2 </Item>
<Item> A3 </Item>
<Item> A4 </Item>
<Item> A5 </Item>
</Items>
产品名称
A1
A2
A3
A4
A5
我的问题是,当我尝试序列化此对象时,XML serialize program ignore Product元素只得到以下XML数据:
<Items>
<Item> A1 </Item>
<Item> A2 </Item>
<Item> A3 </Item>
<Item> A4 </Item>
<Item> A5 </Item>
</Items>
A1
A2
A3
A4
A5
任何人都可以帮助我获得正确格式的XML文档。
XmlSerializer
(以及许多其他代码)将事物视为项或(独占)列表。您不应该对列表和属性进行子类化:您应该拥有一个具有列表和属性的类型
[XmlRoot("Items")]
public class Foo {
public string Product {get;set;}
private readonly List<string> items = new List<string>();
[XmlElement("Item")]
public List<string> Items {get{return items;}}
}
[XmlRoot(“项目”)]
公开课Foo{
公共字符串乘积{get;set;}
私有只读列表项=新列表();
[XmlElement(“项目”)]
公共列表项{get{return Items;}}
}
XmlSerializer
(以及许多其他代码)将事物视为项或(独占)列表。您不应该对列表和属性进行子类化:您应该拥有一个具有列表和属性的类型
[XmlRoot("Items")]
public class Foo {
public string Product {get;set;}
private readonly List<string> items = new List<string>();
[XmlElement("Item")]
public List<string> Items {get{return items;}}
}
[XmlRoot(“项目”)]
公开课Foo{
公共字符串乘积{get;set;}
私有只读列表项=新列表();
[XmlElement(“项目”)]
公共列表项{get{return Items;}}
}
您使用的是XMLWriter还是XMLSerializer?您还应该尝试使用[XmlElement]来装饰类。我确实使用XmlSerializer,我尝试添加XmlElement来装饰项或生产元素,但它仍然不适合我。你知道吗?你在用XMLWriter还是XMLSerializer?您还应该尝试使用[XmlElement]来装饰类。我确实使用XmlSerializer,我尝试添加XmlElement来装饰项或生产元素,但它仍然不适合我。有什么想法吗?我告诉你们,我得到了这个:abc A1 A2 A3 A4 A5我得到了额外的项目节点。太好了,它工作了,我创建的程序有一些问题,因为我出错了result@Ericyu67如果您没有将其标记为[xmlement]
,则会出现一个额外的项
节点。基本上,它默认为[XmlArray]
/[XmlArrayItem]
布局。我告诉你们,我得到了这个:abc A1 A2 A3 A4 A5我得到了额外的项目节点。很好,它可以工作,我创建的程序有一些问题,因为我出错了result@Ericyu67如果您没有将其标记为[xmlement]
,则会出现一个额外的项
节点。基本上,它默认为[XmlArray]
/[XmlArrayItem]
布局。