一个列表中多个对象类型的 Xml 序列化

2024-04-03

我有一个对象,其中包含抽象“aninamls”列表。 IE。

var animals = new Animals
{
   new Bird{ TailFeatherColour = "Blue" },
   new Cat{ Colour = "Brown" }
};

使用 xmlserializer,是否可以将上面的内容序列化为以下 xml,

<?xml version="1.0" encoding="utf-16"?>
<Animals>
    <Bird>
        <TailFeatherColour>Blue</TailFeatherColour>
    </Bird>
    <Cat>
        <Colour>Brown</Colour>
    </Cat>
</Animals>

目前,我只能得到以下内容:

<?xml version="1.0" encoding="utf-16"?>
<Animals>
    <Animal xsi:type="Bird">
        <TailFeatherColour>Blue</TailFeatherColour>
    </Animal>
    <Animal xsi:type="Cat">
        <Colour>Brown</Colour>
    </Animal>
</Animals>

The XmlElementAttribute http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlelementattribute.aspx and XmlArrayItemAttribute http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlarrayitemattribute.aspx当列表是另一个类中的字段时,可以使用属性来执行此操作(区别在于前者不会在列表元素周围放置容器元素,而后者会放置容器元素)。

我不相信你可以只用一个列表来实现你想要的,即当被序列化的实际对象是一个列表时(尽管我在这里可能是错的),但是你可以通过在类中嵌套一个列表来伪造它,例如

[XmlRoot("Animals")]
[XmlType("Animals")]
public class AnimalsWrapper
{
    [XmlElement(typeof(Bird), ElementName = "Bird")]
    [XmlElement(typeof(Cat), ElementName = "Cat")]
    public List<Animal> Animals;
}

这是一个有点笨拙的黑客,但会序列化到您正在寻找的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一个列表中多个对象类型的 Xml 序列化 的相关文章

  • 为什么使用abs()或fabs()而不是条件否定?

    在 C C 中 为什么要使用abs or fabs 不使用以下代码即可查找变量的绝对值 int absoluteValue value lt 0 value value 这与较低级别的指令较少有关吗 您提出的 有条件的abs 并不等于std
  • GCC C++ (ARM) 和指向结构体字段的 const 指针

    假设有一个简单的测试代码 typedef struct int first int second int third type t define ADDRESS 0x12345678 define REGISTER type t ADDRE
  • Tensorflow 中的自定义资源

    由于某些原因 我需要为 Tensorflow 实现自定义资源 我试图从查找表实现中获得灵感 如果我理解得好的话 我需要实现3个TF操作 创建我的资源 资源的初始化 例如 在查找表的情况下填充哈希表 执行查找 查找 查询步骤 为了促进实施 我
  • C++ 中的软(不是:弱)引用 - 这可能吗?有实施吗?

    在 C 中我正在使用boost shared ptr and boost weak ptr自动删除不再需要的对象 我知道这些与引用计数一起工作 在 Java 中 内存由垃圾收集器管理 它将内置对象引用视为strong WeakReferen
  • MEX 文件中的断言导致 Matlab 崩溃

    我正在使用mxAssert 宏定义为matrix h在我的 C 代码中 mex 可以完美编译 当我调用的 mex 代码中违反断言时 该断言不会导致我的程序崩溃 而是导致 Matlab 本身崩溃 我错过了什么吗 这是有意的行为吗 当我查看 M
  • 如何进行带有偏差的浮点舍入(始终向上或向下舍入)?

    我想以偏置舍入浮动 要么总是向下 要么总是向上 代码中有一个特定的点 我需要这个 程序的其余部分应该像往常一样四舍五入到最接近的值 例如 我想四舍五入到最接近的 1 10 倍数 最接近 7 10 的浮点数约为 0 69999998807 但
  • 如果.Net Core可以在Windows上运行,为什么不能在.Net Framework中引用.Net Core DLL?

    我明白为什么 Net Framework 可能会在 Net Core IE 中导致问题 因为不存在特定于 Windows 平台的 API 但是为什么不能直接引用 Net Core 作为 Net Framework 中的库呢 如果 Net C
  • 处理 fanart.tv Web 服务响应 JSON 和 C#

    我正在尝试使用 fanart tv Webservice API 但有几个问题 我正在使用 Json Net Newtonsoft Json 并通过其他 Web 服务将 JSON 响应直接反序列化为 C 对象 这里的问题是元素名称正在更改
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • 单元测试失败,异常代码为 c0000005

    我正在尝试使用本机单元测试项目在 Visual Studios 2012 中创建单元测试 这是我的测试 TEST METHOD CalculationsRoundTests int result Calculations Round 1 0
  • “MyClass”的类型初始值设定项引发异常

    以下是我的Windows服务代码 当我调试代码时 我收到错误 异常 CSMessageUtility CSDetails 的类型初始值设定项引发异常 using System using System Collections Generic
  • C# using 语句、SQL 和 SqlConnection

    使用 using 语句 C SQL 可以吗 private static void CreateCommand string queryString string connectionString using SqlConnection c
  • 从匿名类型获取值

    我有一个方法如下 public void MyMethod object obj implement 我这样称呼它 MyMethod new myparam waoww 那么我该如何实施MyMethod 获取 myparam 值 Edit
  • 是否有一个 C++ 库可以从 PDF 文件中提取文本,例如 PDFBox for Java? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 去年 我使用 PDFBox 在 Java 中创建了一个应用程序来获取某些 PDF 文件中的原始文本 现在
  • Fluent NHibernate 日期时间 UTC

    我想创建一个流畅的 nhibernate 映射来通过以下方式映射 DateTime 字段 保存时 保存 UTC 值 读取时 调整为本地时区值 实现此映射的最佳方法是什么 就我个人而言 我会将日期存储在 UTC 格式的对象中 然后在读 写时在
  • 如何在 GCC 5 中处理双 ABI?

    我尝试了解如何克服 GCC 5 中引入的双重 ABI 的问题 但是 我没能做到 这是一个重现错误的非常简单的示例 我使用的GCC版本是5 2 如您所见 我的主要函数 在 main cpp 文件中 非常简单 main cpp include
  • 以编程方式使用自定义元素创建网格

    我正在尝试以编程方式创建一个网格 并将自定义控件作为子项附加到网格中 作为 2x2 矩阵中的第 0 行第 0 列 为了让事情变得更棘手 我使用了 MVVM 设计模式 下面是一些代码可以帮助大家理解这个想法 应用程序 xaml cs base
  • 热重载时调用方法

    我正在使用 Visual Studio 2022 和 C 制作游戏 我想知道当您热重新加载应用程序 当它正在运行时 时是否可以触发一些代码 我基本上有 2 个名为 UnloadLevel 和 LoadLevel 的方法 我想在热重载时执行它
  • Swagger 为 ASP.CORE 3 中的字典生成错误的 URL

    当从查询字符串中提取的模型将字典作为其属性之一时 Swagger 会生成不正确的 URL 如何告诉 Swagger 更改 URL 中字典的格式或手动定义输入参数模式而不自动生成 尝试使用 Swashbuckle 和 NSwag 控制器 pu
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12

随机推荐

  • 使用 XmlCipher (RSA) 加密 XML 文件

    我只需要使用公钥加密一些 XML 元素 我成功地可以将此代码与 simetric 算法 XMLCipher AES 128 一起使用 但在尝试使用 XMLCipher RSA v1dot5 时失败 这就是代码 import java sec
  • FileReference.save() AS3 上锁定文件类型的替代方案

    Update 正如下面 Jacob 的回复中所讨论的 限制或纠正 FileReference save 的行为是不可能的 谁能建议一个替代方案 服务器是 Apache PHP 它符合我在这篇文章中的所有标准 并避免我与 Jacob 讨论的陷
  • iOS Prefix.pch 最佳实践

    我见过许多开发人员将各种方便的宏添加到他们的 iOS 项目的 Prefix pch 中 您建议在 iOS Prefix pch 文件中添加 或不添加 什么内容 你的 Prefix pch 是什么样的 Ewww 不要将宏放入 pch 文件中
  • ACTION_POWER_CONNECTED 的问题

    我在应用程序中使用以下示例页面中的代码来监控设备何时连接 断开与电源适配器的连接 http developer android com training monitoring device state battery monitoring
  • 如何在第二台显示器上打开form2?

    我从 Form1 创建 Form2 我希望 Form2 在第二台显示器上打开 我怎样才能做到这一点 我使用这段代码 private void button1 Click object sender EventArgs e Form2 dlg
  • react-google-maps:如何使用 fitBounds、panBy、panTo、panToBounds 公共 API?

    根据反应谷歌地图库 https github com tomchentw react google maps blob master src lib GoogleMap js L125 L131 您可以从 ref 对象调用这四个方法 看起来
  • 简化 sympy 中双曲函数的指数表示

    我正在尝试将表达式中的一些指数函数重写为 cosh 和 sinh rewrite 函数的作用是将双曲函数转换为其指数表示形式 但想回去是不行的 gt gt gt import sympy gt gt gt x sympy Symbol x
  • UIScrollView 就像 iPad 上的 Twitter 应用程序

    我正在寻找教程或一些想法来制作一个类似于 iPad 版 Twitter 应用程序中的自定义控制器 我的意思是左侧有主菜单的堆叠页面 预先感谢您的任何帮助 我们创建了一个模拟项目并添加到 github 中 https github com r
  • 如何禁用 JButton 而不隐藏其标签?

    我正在使用 netbeans IDE 在 Java 中开发一个项目 我需要禁用特定的 JButton 我为此使用以下代码 IssuBtn setEnabled false 但禁用后 它不会在 JButton 上显示文本 如何将该文本保留在
  • 如果选中复选框,如何隐藏和显示项目

    我试图根据是否选中复选框来隐藏和显示一个区域 我尝试了一些选项 但该区域要么始终可见 要么始终隐藏 JavaScript document ready function var mgift chkbxMGift input type che
  • 如何跳转到 PrintDocument 中的下一页?

    我有一个应用程序可以打印您想要的条形码数量 但是如果条形码的数量大于条形码的大小打印文档 http msdn microsoft com en us library system drawing printing printdocument
  • Gradle 与 Eclipse - 当多个源集时不完整的 .classpath

    我有一个 gradle 构建脚本 其中包含一些源集 这些源集都定义了各种依赖项 有些是常见的 有些不是 并且我正在尝试使用 Eclipse 插件来让 Gradle 生成 project and classpath文件的 Eclipse 但我
  • 如何在android java应用程序中从设备获取图像

    在我的应用程序中 我想上传图像 为此 我必须从 Android 设备中的图库中获取图像 我如何编写代码来完成这个任务 提出意图并采取行动ACTION GET CONTENT并将类型设置为 image 这将启动照片选择器 Activity 当
  • nunjucks:找不到模板

    尝试渲染 nunjucks 模板但得到Error template not found email html server views email email html workers email worker js email worke
  • 转换文件编码

    我有一个 PHP 应用程序 其文件编码是 Greek ISO iso 8859 7 我想将文件转换为 utf 8 但仅使用 utf 8 保存文件是不够的 因为希腊文本会出现乱码 是否有一种 自动 方法可以执行此操作 以便我可以完全转换应用程
  • 如何检索两个 3D 向量之间的角度?

    我是Python新手 我在 3d 空间中有两个向量 我想知道两个向量之间的角度 I tried vec1 x1 y1 z1 vec2 x2 y2 z2 angle np arccos np dot vec1 vec2 np linalg n
  • Python脚本将文件从一台服务器获取到另一台服务器并将它们存储在单独的目录中?

    我正在研究server 1 我需要编写一个Python脚本来连接到server 2并从一个目录中获取某些文件 名称以字母 HM 开头的文件 并将它们放入另一个目录中 该目录需要在运行时创建 因为对于程序的每次运行 都必须创建一个新目录 创建
  • Javascript 方法命名小写与大写

    我主要是 ASP NET 和 C 的开发人员 我以小写字母开头命名变量 以大写字母开头命名方法 但我研究的大多数 javascript 示例都有以小写字母开头的函数 这是为什么 这很重要吗 function someMethod alert
  • gdb print :执行的每个语句的行号

    我有一个确定性的 halting 程序与no IO 我想要使用 gdb 运行并让它打印执行的每个 c 语句 例如文件名 行号
  • 一个列表中多个对象类型的 Xml 序列化

    我有一个对象 其中包含抽象 aninamls 列表 IE var animals new Animals new Bird TailFeatherColour Blue new Cat Colour Brown 使用 xmlserializ