简体   繁体   English

关于.NET中XmlSerializer的问题

[英]Question about XmlSerializer in .NET

I have the following classes in C# that I want to serialize: 我在C#中有以下要编译的类:

Item 项目

ProjectItem : Item ProjectItem:项目

Folder : Item 文件夹:项目

Project (Contains a collection of Item, that may be either a ProjectItem or a Folder) Project(包含Item的集合,可以是ProjectItem或Folder)

When I serialize a "Project", I get the following... 当我序列化“项目”时,我得到以下内容......

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

While I'd like something like... 虽然我喜欢......

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

Do you have any idea about how to do that? 你知道怎么做吗? Thanks in advance. 提前致谢。

I believe you need to add some attributes like this to your Project property: 我相信你需要在Project属性中添加这样的属性:

[XmlArray]
[XmlArrayItem(ElementName="ProjectItem", Type=typeof(ProjectItem))]
[XmlArrayItem(ElementName="Folder", Type=typeof(Folder))]
public List<Item> Project
{
   get;
   set;
}

You can control naming by attributes: 您可以按属性控制命名:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM