Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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中的主细节XML序列化#_C#_Xml_Serialization - Fatal编程技术网

C# c中的主细节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

我是XML新手,基本上我有这样的类:

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]
布局。