我可以阻止特定数据成员被反序列化吗?

2023-12-01

我有这样的数据合同

[DataContract]
class MyDC 
{
    [DataMember]
    public string DM1;

    [DataMember]
    public string DM2;

    [DataMember]
    public string DM3;
}

and 有时我想防止 DM2 在从 OperationContract 返回时被反序列化。像这样的东西:

[OperationContact]
public MyDC GetMyDC()
{
    MyDC mdc = new MyDC();

    if (condition)
    {
        // Code to prevent DM2 from being deserialized  
    }

    return mdc;
}

我总是可以创建一个仅包含 DM1 和 DM3 的新 DataContract,并从 MyDC 实例生成它,但我想看看是否可以以编程方式删除 DM2。是否可以?如何?


执行此操作的一种方法是将 DataMemberAttribute 的 EmitDefaultValue 属性设置为 false:

[DataContract]
class MyDC 
{
    [DataMember]
    public string DM1;

    [DataMember(EmitDefaultValue = false)]
    public string DM2;

    [DataMember]
    public string DM3;
}

然后将此属性设置为 null:

[OperationContact]
public MyDC GetMyDC()
{
    MyDC mdc = new MyDC();

    if (condition)
    {
        // Code to prevent DM2 from being deserialized  
        mdc.DM2 = null;
    }

    return mdc;
}

这样,该属性就不会在序列化时写入输出流。

http://msdn.microsoft.com/en-us/library/aa347792.aspx

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

我可以阻止特定数据成员被反序列化吗? 的相关文章

随机推荐

  • Z-index 没有覆盖 DOM 中更下方的 div

    我正在尝试创建一个类似工具提示的系统 其中 mouseenter 事件会导致显示一个 div 该 div 将覆盖内容 不幸的是我遇到的问题是内容laterDOM 中的内容在 IE7 中并没有消失 而之前的内容在 z 索引元素后面正确消失 这
  • 查找具有特定字符串的 svn:external 属性的路径?

    我有一个非常大的 Subversion 存储库 大小约为 7 GB 包含来自不同项目的许多文件和目录 现在我对一个项目结构做了一些重大更改 它实际上是一个库 并且我在同一存储库中的很多其他项目中使用它 现在文档很少 我不知道哪个项目实际上真
  • 如何在 REST Assured 中传递默认解析器?

    我正在尝试使用 REST Assured 自动化 API 以下是我在执行 API 测试用例期间遇到的错误 testNotifications com api truValue test notifications Notifications
  • opencv如何在光流后跟踪物体?

    对视频进行光流 lk 后 根据此数据查找对象并跟踪它们的最佳方法是什么 这可能听起来很菜鸟 但我希望能够在物体周围定义清晰的轮廓 所以如果它是一个形状奇怪的瓶子或其他东西 就能够检测边缘 我不确定 LK 是最好的算法 因为它计算一组稀疏的角
  • FCM - 重新调试应用程序后发送消息时出现 Android Xamarin NotRegistered 错误

    我正在 Xamarin Android 中开发一个应用程序 对于通知 我使用 FCM 预发布包 https www nuget org packages Xamarin Firebase Messaging 现在 如果我清理应用程序数据 一
  • 如何将相似名称的文件复制到文件夹中?

    我正在创建一个归档系统 需要将文件分类到文件夹中 我通过在 Excel 工作表中提及文件夹名称来自动创建文件夹 现在我需要复制相应文件夹中具有相似名称的文件 例如 将创建一个名为 Ashley Davidson 的文件夹 一个源文件夹中且文
  • 如何为 php Web 应用程序管理不同国家/地区的不同用户的时区?

    我正在开发网络应用程序 该应用程序有来自不同国家的不同用户 我曾经使用 UTC 时间戳来管理他们的注册 这对我来说可以 但是当我检查帐户的到期日期时出现问题 例如 假设注册有效期为 15 天 来自印度的用户 其注册日期为亚洲 加尔各答时区的
  • html lang 属性的 html 验证错误

    我收到此错误消息 该文档似乎是 Lorem ipsum 文本 但 html 开始标记有 lang en 考虑使用 lang zxx 或变体 从第 5 行第 32 列开始 至第 5 行 第 47 列 html lang en 如需进一步指导
  • Magento simplexml_load_string()错误位置

    我有一个非常烦人的问题 当我对 Magento 商店进行一些修改时 我遇到了 simplexml load string 错误 我很清楚这个错误是由一些错误的 XML 文件引起的 但对我来说非常重要的问题是哪个文件以及它位于哪里 这是我收到
  • 使用RxJava 2和Retrofit 2,适配器版本问题

    我在 Android Studio 中的现有应用程序模块中添加了一个新的库模块 主要区别是添加了 RxJava 2 和 Retrofit 2 更新新模块的 build gradle 后 我开始收到下一个错误 错误 任务 app transf
  • 对象数组中属性值的递归数组

    我需要的是一个属性值数组 从对象数组中递归收集 这就是我的意思 const regions name Europe subRegions name BeNeLux territories code NL name Netherlands c
  • 如何在 Fortran 中正确地终结对象?

    我有一个解析文本文件的对象 这是我的主要程序 program main use Parser class implicit none type Parser Parser call Parser ProcessFile data txt c
  • 如何在应用程序中获取 Dart 和 Flutter 版本

    How to log 的版本Dart and Flutter在应用程序内 like String dartVersion log dart dartVersion 要执行 dart 版本 您可以使用 Platform 类直接返回 dart
  • 如何在GWT页面中显示java小程序?

    我可能在这里遗漏了一些简单的东西 但我在其他地方找不到答案 我只想在我的 GWT 代码中显示一个小程序 操作系统 Windows XP Java JDK 1 6 0 10 其他 GWT GWT Ext 2 0 5 这是小程序 显然是为了测试
  • 我正在尝试使用命令 sudo npm install --g expo-cli 请注意我尝试 --force 全局重新安装 expo-cli 软件包

    bosshoc MBP de BOSS meals app sudo npm install g expo cli Password npm ERR code ENOTEMPTY npm ERR syscall rename npm ERR
  • Android WebView - 拦截点击

    我编写了一个带有 WebView 的简单 helloworld 应用程序 该应用程序在我的 asset 文件夹中的 simple html 页面上有 CNN 的链接 a href http cnn com cnn com a 如何捕获对我的
  • 合并两个都有联结表的 SQLite 数据库

    我有两个 SQLite 数据库 它们都有连接表来描述一对多关系 现在 这两个数据库需要通过某种导入 导出机制合并为一个数据库 并仍然保留关系 我试图转储DB2 with dump然后将其加载回DB1 with read 但总是得到PRIMA
  • 如何制作克隆或扩展模式

    我有多个显示器 虚拟 真实 默认情况下我想从我的程序将其置于克隆 双模式 有人可以建议我如何实现这一目标吗 我对这个世界很陌生 对于这个基本问题感到抱歉 即使任何文档或任何链接都将非常值得赞赏 萨博吉特 Extend SetDisplayC
  • MSP430G2553 定时器间隔 [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 在阅读了大约五遍文字并进行谷歌搜索后 我决定寻求帮助 我目前正在使用 Timer A 中断以 1 秒 10 秒 1 分钟的间隔一次打开 关闭两个 LED 默认程序每秒都会打开 关闭 L
  • 我可以阻止特定数据成员被反序列化吗?

    我有这样的数据合同 DataContract class MyDC DataMember public string DM1 DataMember public string DM2 DataMember public string DM3