序列化一个可为空的 int

2023-11-26

我有一个可以为 null int 的类?设置为序列化为 xml 元素的数据类型。有什么方法可以设置它,以便 xml 序列化程序在值为 null 时不会序列化该元素吗?

我尝试添加 [System.Xml.Serialization.XmlElement(IsNullable=false)] 属性,但收到运行时序列化异常,指出存在反映类型的错误,因为“IsNullable 可能未设置为 'false” ' 对于 Nullable 类型。请考虑使用“System.Int32”类型或从 XmlElement 属性中删除 IsNullable 属性。

[Serializable]
[System.Xml.Serialization.XmlRoot("Score", Namespace = "http://mycomp.com/test/score/v1")]
public class Score
{
    private int? iID_m;
    ...

    /// <summary>
    /// 
    /// </summary>        
    public int? ID 
    { 
        get 
        { 
            return iID_m; 
        } 
        set 
        { 
            iID_m = value; 
        } 
    }
     ...
}

上面的类将序列化为:

<Score xmlns="http://mycomp.com/test/score/v1">
    <ID xsi:nil="true" />
</Score>

但对于 null 的 ID,我根本不需要 ID 元素,主要是因为当我在 MSSQL 中使用 OPENXML 时,它会为如下所示的元素返回 0 而不是 null


XmlSerializer 支持ShouldSerialize{Foo}()模式,因此您可以添加一个方法:

public bool ShouldSerializeID() {return ID.HasValue;}

还有{Foo}Specified模式 - 不确定 XmlSerializer 是否支持该模式。

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

序列化一个可为空的 int 的相关文章

随机推荐

  • 在 Android 中以编程方式打开 ServiceMode 菜单

    如何打开安卓服务模式在三星手机上以编程方式菜单 手动的话 我可以通过拨打ussd代码 0011 来完成 这是一个挑战 我花了几个小时寻找解决方案 但恐怕我没有好消息 1 第一次尝试 Intent ACTION DIAL 确实 一开始 可以直
  • R-更改数据框中列的编码?

    我正在尝试更改数据框中列的编码 stri enc mark data updated text 1 UTF 8 ASCII ASCII UTF 8 ASCII ASCII UTF 8 UTF 8 UTF 8 10 ASCII ASCII U
  • not() 和ends-with() 的Xpath 错误

    我有以下 Xpath 表达式 not input ends with Copyright 我希望它能够为我提供所有元素 输入除外 以及以 版权 结尾的任何属性值 我在 Selenium 2 Java API 中执行它webDriver fi
  • C++ 中 min 和 max 函数的使用

    从 C 来看 有std min and std max优于fmin and fmax 为了比较两个整数 它们提供基本相同的功能吗 您是否倾向于使用这些函数集中的一组 还是更喜欢编写自己的函数 也许是为了提高效率 可移植性 灵活性等 Note
  • ClassNotFoundException:net.sourceforge.jtds.jdbc.Driver

    我有连接到 MS SQL 数据库并获取一些数据的 java 代码 在运行代码之前 我在 Unix 服务器中设置了类路径 它以前工作得很好 但由于某种原因 几天前运行的同一个 jar 文件抛出了 Class not found 异常java
  • 不带 typedef 关键字的结构

    我目前正在学习有关structC 中的数据结构以及如何在该结构前加上typedef关键词 这会导致实际结构的变量名称被放置在不同的命名空间中 如几个不同参考文献中所述 C 中 struct 和 typedef struct 的区别 type
  • 如何使用 Cocoa 标记文件和文件夹

    我想用某种颜色 图像 标记文件和文件夹 如何才能实现这一目标 我尝试使用图标服务 它适用于文件 但不适用于文件夹 我看到这种行为有效Dropbox 10 4 10 5 和 10 6 如何做到这一点 博客文章Cocoa 教程 自定义文件夹图标
  • 平面文件与数据库 - 速度?

    我正在制作一个聊天程序 我需要一个地方来存储消息 客户端将每隔 x 秒与服务器联系一次最后收到的消息 id 服务器将在客户端加入的房间中查找 id 高于该 id 的所有消息 由于我不会永远存储内容 因此我正在考虑使用仅包含最后 40 条左右
  • 64 位架构中的汇编寄存器

    继回答有关汇编寄存器大小的问题 首先 尺寸是多少eax ax ah以及 64 位架构中的对应产品 如何访问单个寄存器的字节以及如何访问所有64位寄存器的八个字节 我希望双方都受到关注x86 64 x64 and Itanium处理器 其次
  • 如何在 Chrome 中将 localStorage 数据写入文本文件

    我想将 localStorage 项写入文本文件 并希望调用用户将文件存储在指定位置 请帮助我扩展代码 var data JSON parse localStorage getItem pid var Text2Write for var
  • 以编程方式分析java堆转储文件

    我想编写一个程序 最好用java 来解析和分析java堆转储文件 由jmap创建 我知道有很多很棒的工具已经可以这样做 jhat eclipse 的 MAT 等 但我想从我的应用程序的特定角度来分析堆 在哪里可以阅读有关堆转储文件的结构 如
  • 什么时候需要使用标志 -stdlib=libstdc++?

    什么时候需要使用use flag stdlib libstdc 使用 gcc 编译时的编译器和链接器 编译器会自动使用libstdc 吗 我在 Ubuntu 13 10 上使用 gcc4 8 2 我想使用 c 11 标准 我已经通过了 st
  • 不稳定的 javax.jms.JMSException:同行已处置

    我在使用 Java JMS 时遇到了不稳定的问题 暂时工作正常 但会不规律地抛出以下异常并中断执行 值得注意的是 这种情况是在没有停止代理的情况下发生的 javax jms JMSException Peer vm test 1 dispo
  • 无法在写入上下文中使用方法返回值

    我认为下面的代码应该可以工作 但事实并非如此 已编辑 现在适用于 PHP 5 5 if empty r gt getError Where getError 很简单 public function getError return this
  • 使用备用凭据通过 VBscript 进行安全 LDAP 对象操作

    我知道使用具有显式凭据的 ADsDSOobject 来连接到 AD 对象以读取属性 列出成员等 以及用于操作这些对象 添加组成员 更改属性 的 GetObject LDAP 方法等 但是有没有办法通过显式凭证来操作属性和成员资格 我指的第一
  • 如何从名称中获取选择器?

    我有一个 NSString 其中包含我想用 PerformSelector 调用的选择器的名称 如何从字符串中获取对选择器的引用 NSSelectorFromString name
  • FOSElasticaBundle 和 Doctrine Hydration

    我正忙着检查 elasticsearch 来寻找我正在开始的新项目 我目前正在运行 Symfony2 5 以及最新的 FOSElasticaBundle 等等 我正在对捆绑包的性能进行一些基准测试 我知道弹性本身非常快 但我遇到了一个小问题
  • 如何将 Ember 数据与嵌套资源结合使用

    我的应用程序后端有多种资源 为每个资源公开一个模型 所有其他资源的入口点是通过User模型 我的意思是 给定User我们可以找BlogPost 给定一个BlogPost我们可以找Comments etc 用 Ember 术语来说 我们可以说
  • 织物的独立 fabfile?

    是否可以使 fabfile 成为独立的 我不太喜欢运行外部工具 fab 如果我设法获得独立的 fabfile 我可以从 Eclipse Pydev IDE 中运行该文件 轻松调试它 使用项目配置和路径等 为什么这不起作用 from fabr
  • 序列化一个可为空的 int

    我有一个可以为 null int 的类 设置为序列化为 xml 元素的数据类型 有什么方法可以设置它 以便 xml 序列化程序在值为 null 时不会序列化该元素吗 我尝试添加 System Xml Serialization XmlEle