XmlSerializer 枚举反序列化因(不存在)空格而失败

2023-12-13

我有一个正在反序列化的对象,其中包含枚举“JourneyPatternLinkDirectionEnumeration”,它用作节点“Direction”的值。

当“Direction”指定了一个值,或者未指定并且它在 xml 中表示为

<Direction />

一切正常。但是,如果它在 xml 中为

<Direction></Direction>

我收到以下错误:

“实例验证错误:‘’不是 的有效值 JourneyPatternLinkDirectionEnumeration。”

我的代码如下:

var xmlTextReader = new XmlTextReader(xmlDocUri);
xmlTextReader.WhitespaceHandling = WhitespaceHandling.None;
xmlTextReader.Normalization = false;

var serializer = new XmlSerializer(typeof(T),  typeof(T).Assembly.GetTypes());

ouput = (T)serializer.Deserialize(xmlTextReader);

有什么想法吗?有一个更好的方法吗。

(抱歉,我无法发布完整代码,xml 文档是 65000 行 TransXchange 文档)


我认为你在这里没有选择,如果这是一个错误,那就是一个错误。更改源 XML,或将值声明为字符串,并提供非序列化枚举包装器属性,或为实现 IXmlSerialized 的枚举类型创建包装器类。

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

XmlSerializer 枚举反序列化因(不存在)空格而失败 的相关文章

随机推荐

  • 从 numpy 数组中的每个字符串中提取第一个字母

    我有一个巨大的 numpy 数组 其中元素是字符串 我喜欢用字符串的第一个字母替换字符串 例如如果 C 0 A90CD 我想将其替换为 C 0 A 简而言之 我正在考虑在循环中应用正则表达式 其中我有一个正则表达式字典 例如 A gt A
  • 为什么 cmp 指令中的参数顺序很重要?

    我想知道为什么cmp指令需要一定的参数顺序条件 例如 我已经尝试过这两种方法 cmpl eax A cmpl A eax 第一行返回错误 表示操作数类型不匹配 第二线效果很好 我浏览了 Intel IA 32 手册 但它无法回答我的问题 它
  • 由于一个或多个外键属性不可为 null,因此无法更改该关系。 (2)

    我在 NET 4 5 应用程序中使用 Entity Framework 6 1 3 并在 Oracle 数据库服务器上使用 Code First 和手工制作的表架构 大多数事情都运行良好 对于新函数 会抛出以下异常SaveChanges 操
  • 在 asp.net mvc 中获取客户端计算机时区

    如何在asp net mvc中获取客户端计算机的时区ID 例如 中部标准时间 它必须在 Javascript 端完成 并将隐藏字段中的值发布回服务器 看看Date getTimezoneOffset
  • 如何获取多个Edit Text addview android的值并将其发送到MySQL

    我正在构建一个 Android 应用程序 在其中创建动态 EdittextView 我需要将 edittext 的值发送到数据库 我已在父布局中成功将数据发送到 mysql 但在子布局中却失败了 我的意思是 我无法在 edittext 中发
  • 在单个正则表达式中将 X 替换为 Y,将 Y 替换为 X

    假设我有以下内容 var strRandomString I have 2 apples and 6 oranges and 3 grapes 现在我想用 橙子 一词替换 苹果 一词 反之亦然 顺序不固定 替换应该是全局的 这使得最终结果
  • 电子邮件通知 sonarqube 中的意外行为

    这是关于sonarqube 5 1版本的 我有问题分配插件 并且还订阅了我的个人资料页面中的电子邮件 我故意做了一些错误的 SVN 提交来检查电子邮件通知设置 但它似乎无法正常工作 我有时会收到电子邮件 但有时却不起作用 我知道这不是一个足
  • Swift 中的“'CGFloat' 无法转换为 'Double'”错误 (iOS)

    我正在尝试用 Swift 将图像切成 9 块 我收到此错误 CGFloat 无法转换为 Double 当我输入时出现此错误i or j在两个变量中 下面是用于剪切图像的部分代码 for i in 1 3 for j in 1 3 var i
  • Git 认为我是错误的用户

    我使用的是 Mac OSX git 版本1 8 5 2 Apple Git 48 我在 git 存储库中有一个 git 子模块 据我所知 仅使用一个 git 用户和 rsa 密钥来克隆 拉取 提交 合并和推送 我还有许多其他用户和密钥对 但
  • 使用 Microsoft.Graph 获取当前应用程序权限

    我的 C 程序使用 Microsoft Graph Nuget 并且它需要能够确保它具有正确的 Microsoft Graph 应用程序权限 我知道如何在 AD 中添加权限 但我希望我的程序能够测试它是否具有所需的权限 我想要实现的目标的示
  • 从 Web Api 发布和重定向

    Warning 这个问题不是关于如何发布到 Web Api 而是关于如何从 Web Api 发布 设想 我的问题与达林 迪米特洛夫 Darin Dimitrov 的答案的评论有关 如何在 ASP NET Web API 中重定向 并且似乎是
  • 将表而不是范围定义为数据透视表“cacheSource”

    我正在构建一个工具来自动创建包含表和关联数据透视表的 Excel 工作簿 表结构位于一张纸上 稍后将使用另一种工具从数据库中提取数据 数据透视表位于第二个工作表上 使用前一个工作表中的表作为源 我正在使用 EPPlus 来促进构建该工具 但
  • Python mysql.connector - 以字典形式检索行的正确方法

    我有一个包含 20 列的表 我使用以下代码将特定电影的每个字段作为字典获取 import mysql connector def getMovie id movie cnx mysql connector connect config cu
  • 、 、 padding、margin、100vh 和 calc()

    考虑以下代码片段 html margin 0 padding 0 background color blue body margin 0 padding 0 background color green min height 100vh s
  • 是否可以“存储”模板参数包而不扩展它?

    当我偶然发现这个问题时 我正在尝试 C 0x 可变参数模板 template lt typename Args gt struct identities typedef Args type compile error parameter p
  • java.sql.SQLException:ORA-00904

    我收到以下异常 java sql SQLException ORA 00904 invalid identifier ORA 06512 at line 1 下面是我试图执行的查询 public static final String DA
  • 返回带空格的数字字符串中的最大和最小数字

    假设我有一串用空格分隔的数字 我想返回最大和最小的数字 如何在 JS 中使用函数最好地完成此操作 例子 highestAndLowest 1 2 3 4 5 return 5 1 我希望这两个数字都以字符串形式返回 最小的数字先跟一个空格
  • 在 Apple Swift 中使用巨大的数字

    我不是程序员 我只是喜欢在空闲时间写一些代码 我以前用python3编程 现在我正在尝试学习苹果的Swift 我的问题 在 python3 中 我毫无问题地使用了像 10 1000 这样的巨大数字 我可以打印它们 用它们进行数学运算 等等
  • 如何判断可执行文件是否是为当前机器编译的?

    我有一些编译和运行的c代码 在一个可以从许多不同的unix计算机 各种linux和mac 偶尔还有其他 访问的目录中 不同的操作系统显然需要不同的可执行文件 我有一个简单的 shell 脚本 可以调用适当的可执行文件 prog OSTYPE
  • XmlSerializer 枚举反序列化因(不存在)空格而失败

    我有一个正在反序列化的对象 其中包含枚举 JourneyPatternLinkDirectionEnumeration 它用作节点 Direction 的值 当 Direction 指定了一个值 或者未指定并且它在 xml 中表示为