C# 关于.NET中XmlSerializer的问题

C# 关于.NET中XmlSerializer的问题,c#,.net,xml-serialization,C#,.net,Xml Serialization,我想序列化以下C#中的类: 项目 项目:项目 文件夹:项目 项目(包含 项目,该项目可以是项目项 (或文件夹) 当我序列化一个“项目”时,我得到以下结果 <Project> <Item xsi:type="Folder"> <Name>MyFolder</Name> </Item> </Project> 我的文件夹 而我想要一些像 <Project> <Folder>

我想序列化以下C#中的类:

项目

项目:项目

文件夹:项目

项目(包含 项目,该项目可以是项目项 (或文件夹)

当我序列化一个“项目”时,我得到以下结果

<Project>
  <Item xsi:type="Folder">
   <Name>MyFolder</Name> 
  </Item>
</Project>

我的文件夹
而我想要一些像

<Project>
  <Folder>
   <Name>MyFolder</Name> 
  </Folder>
</Project>

我的文件夹
你知道怎么做吗?
提前感谢。

我认为您需要在项目属性中添加以下属性:

[XmlArray]
[XmlArrayItem(ElementName="ProjectItem", Type=typeof(ProjectItem))]
[XmlArrayItem(ElementName="Folder", Type=typeof(Folder))]
public List<Item> Project
{
   get;
   set;
}
[XmlArray]
[XmlArrayItem(ElementName=“projecttem”,Type=typeof(projecttem))]
[XmlArrayItem(ElementName=“Folder”,Type=typeof(Folder))]
公开名单项目
{
得到;
设置
}

我认为您需要在项目属性中添加以下属性:

[XmlArray]
[XmlArrayItem(ElementName="ProjectItem", Type=typeof(ProjectItem))]
[XmlArrayItem(ElementName="Folder", Type=typeof(Folder))]
public List<Item> Project
{
   get;
   set;
}
[XmlArray]
[XmlArrayItem(ElementName=“projecttem”,Type=typeof(projecttem))]
[XmlArrayItem(ElementName=“Folder”,Type=typeof(Folder))]
公开名单项目
{
得到;
设置
}

您可以通过属性控制命名:

public class MyEntity{
    [XmlElement(ElementName = "Folder")]
    public someType ProjectItem{get;set;};
}

可以按属性控制命名:

public class MyEntity{
    [XmlElement(ElementName = "Folder")]
    public someType ProjectItem{get;set;};
}

谢谢你的回答,但它并没有完全解决我的问题。类型为“Project”的“Project”属性可能包含Folder或ProjectItem,因此我不能假设它始终是“Folder”。谢谢您的回答,但它没有完全解决我的问题。类型为“Project”的“Project”属性可能包含Folder或ProjectItem,因此我不能假设它始终是例如“Folder”。工作得很好。我感谢你的帮助,工作得很好。我感谢你的帮助。