条件 C# 二进制序列化

2023-12-02

我正在使用 BinaryFormatter 按条件序列化类及其变量。例如:

[Serializable]
public class Class1
{
private Class2 B;
...
}

[Serializable]
public class Class2{...}

我希望变量 B 仅在远程处理时序列化,但当我将其序列化到文件存储时则不序列化。 问题:
1)我知道在XmlSerialization中我们可以使用[XmlIgnore]和{PropertyName}指定有条件地忽略属性。这是 [NonSerialized] 的等效方法吗?
2)对于具有[Serialized]属性的类,如何在运行时忽略它?


  1. 没有这样的方法。您可以通过实现来控制序列化ISerializable,如果您这样做,您将知道哪个序列化上下文处于活动状态(远程处理、文件等)
  2. AFAIK 没办法做到这一点,你为什么想要这个?

一般来说,我建议你不要使用BinaryFormatter。如果有的话,维护也是一件令人头疼的事情。使用 XML 序列化或某种协议缓冲区。

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

条件 C# 二进制序列化 的相关文章

  • 将复选框添加到 UniformGrid

    我正在尝试将复选框动态添加到 wpf 中的统一网格中 但看起来网格没有为它们分配足够的空间 所以它们都有点互相重叠 这就是我将它们添加到后面的代码中的方法 foreach string folder in subfolders PathCh
  • Qt-Qlist 检查包含自定义类

    有没有办法覆盖加载自定义类的 Qt QList 的比较机制 即在 java 中你只需要重写一个比较方法 我有一个带有我的自定义类模型的 QList QList
  • 当我使用“control-c”关闭发送对等方的套接字时,为什么接收对等方的套接字不断接收“”

    我是套接字编程的新手 我知道使用 control c 关闭套接字是一个坏习惯 但是为什么在我使用 control c 关闭发送进程后 接收方上的套接字不断接收 在 control c 退出进程后 发送方的套接字不应该关闭吗 谢谢 我知道使用
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • 如何避免情绪低落?

    我有一个实现状态模式每个状态处理从事件队列获取的事件 根据State因此类有一个纯虚方法void handleEvent const Event 事件继承基础Event类 但每个事件都包含其可以是不同类型的数据 例如 int string
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • 获取没有非标准端口的原始 url (C#)

    第一个问题 环境 MVC C AppHarbor Problem 我正在调用 openid 提供商 并根据域生成绝对回调 url 在我的本地机器上 如果我点击的话 效果很好http localhost 12345 login Request
  • C# 中的递归自定义配置

    我正在尝试创建一个遵循以下递归结构的自定义配置部分
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob

随机推荐

  • 如何检测字符串列表中的公共子字符串

    给定一组字符串 例如 EFgreen EFgrey EntireS1 EntireS2 J27RedP1 J27GreenP1 J27RedP2 J27GreenP2 JournalP1Black JournalP1Blue Journal
  • 尝试改变返回 Iterator 的闭包内的状态时,出现 Rust 错误“无法推断借用表达式的适当生命周期”

    我正在尝试学习 Rust 并在尝试模拟嵌套 Python 生成器时遇到了与生命周期相关的问题 正如编译器所报告的 问题在于由闭包改变的值的生命周期 代码的关键是 flat mapping 一个闭包 它调用一个函数 该函数在其返回的迭代器中改
  • html5-canvas 在线移动对象

    我想在斜线上移动物体 我已经给出了我的代码 在我的第三个 div 的代码中 当我移动滑块时 我在这条线上画了一条斜线 我想移动一个对象 我在第一个分区中正在做类似的事情 我在曲线上移动物体的地方 我正在寻找一些函数 在其中我将提供点并且对象
  • 如何使用 .htaccess 允许在我的 iframe 中访问页面但不能直接访问?

    我有一个用 iframe 制作的网站 我想在自己的 iframe 中显示一个页面 但我想拒绝直接访问 我怎样才能在我的 htaccess 您可以使用Referer用于检查请求是否来自您网站上的链接 或 img src 或 iframe sr
  • Argparse,处理可重复的项目集

    是否可以创建一组相关且可重复的可选参数 假设我有三个参数 a b c 组成一个集合 a 是必需的 但 b 和 c 是可选的 更新 我希望能够指定多组这些 Script py a 1 b 2 c 3 a 4 c 6 a 7 b 8 a 10
  • 我需要将哪些参数传递给 PackageWeb powershell 脚本才能将其部署到我的远程计算机

    尽管如此 我还是在 MSBuild MSDeploy world 中闲逛 并且最近经常摸不着头脑 我希望能够仅构建一次 Web 应用程序项目并将其部署到多个配置 我找到了这个PackageWeb解决方案来自 Sayed I Hashimi
  • 如何将附加属性设置为布尔值

    我正在尝试设置附加属性元素添加到 Open API Schema 3 X 中 但不幸的是我无法在文档中找到任何可以帮助我的内容 我在 Spring boot 中有一个应用程序 它使用 Spring doc OAS 该 OAS 依赖于 Swa
  • 如何从网址中删除问号[重复]

    这个问题在这里已经有答案了 有什么办法可以删除网址中的问号吗 现在假设 URL 可以是http www domain com profile a 10但也可以是http www domain com profile b ticket 所以在
  • 使用 git Branch -f 或 git update-ref 快进现有分支是否更好?

    我意识到我可以使用git update ref快进我不在的现有分支 然后我发现类似的事情可以通过git branch f 我明白那个git update ref更加灵活 它可以移动任何参考 但这可能很危险 那么是不是更好用git branc
  • Sass中如何给全局变量赋值?

    我运行这个 Sass 代码 a 1 if 2 2 4 a 2 debug a 我期望看到 2 然而 输出是 Line 5 DEBUG 1 我知道 Sass 创建了一个新的 a里面的变量 if范围 我怎样才能改变这种行为并为全局分配一个值 a
  • SQLite UPSERT /更新或插入

    我需要对 SQLite 数据库执行 UPSERT INSERT 或 UPDATE 有一个命令 INSERT OR REPLACE 在许多情况下很有用 但是 如果您想由于外键而保留自动增量的 id 则它不起作用 因为它会删除该行 创建一个新行
  • 在 Perl 中打开和读取文件的最佳方法是什么?

    请注意 我并不是在寻找打开 读取文件的 正确 方式 或者每次都应该打开 读取文件的方式 我只是有兴趣了解大多数人使用什么方式 也许同时学习一些新方法 我的 Perl 程序中一个非常常见的代码块是打开一个文件并对其进行读取或写入 我见过很多这
  • 如何在 OpenGLES 中获取图像变量的绑定点

    我正在尝试在 GLES 着色器中获取图像变量的绑定点 我可以使用该代码对制服或着色器存储块执行此操作 GLenum Prop GL BUFFER BINDING GLint Binding 1 GLint ValuesWritten 0 g
  • 如何在JavaCC中使用反斜杠转义字符换行?

    我有一个任务是创建一个词法分析器 除了一点之外 我已经一切正常 我需要创建一个接受新行的字符串 并且该字符串由双引号分隔 该字符串接受任何数字 字母 某些指定的标点符号 反斜杠和分隔符内的双引号 我似乎不知道如何转义新行字符 是否有某种方法
  • SQLite:如何将查询结果保存为 CSV 文件?

    有没有办法可以将查询结果导出到 CSV 文件中 From here和 d5e5 的评论 您必须将输出切换到 csv 模式并切换到文件输出 sqlite gt mode csv sqlite gt output test csv sqlite
  • 将 YYYYMMDD 字符串转换为 Go 中的有效日期

    我想转换一个字符串 20101011 到有效日期 2010 10 11 但无法弄清楚我们该怎么做 I tried now time Now date now Format 20101011 and date time Parse 20101
  • Android:如何使用 Parse 作为替代 GCM 推送通知提供程序?

    请参阅问题末尾的 EDIT 2 Google 更新了推送的实现方式 因此更容易一起处理 gcm 和解析 我已经在应用程序中使用了 GCM 我想添加解析作为替代方案 这就是我现在所拥有的 所有权限都已正确声明
  • 从资源加载和解析 xml 时出现问题

    我已经编写了一个解析器 它可以从 HttpURLConnection 解析 xml 文件 这很好用 问题 我需要重写这个 以便从本地资源而不是从互联网加载 xml 文件 但我无法让它工作 只是为了让您了解原始 Web 解析器的外观 Inpu
  • 错误:在 Android Studio 中找不到名称为“default”的配置

    我正在使用 volley 库在 android 中执行网络操作 所以我试图在我的项目中添加这个库 该项目是在 Android Studio 和 gradle 系统中创建的 我在项目中添加了 volley 库 但是当我与 gradle 同步时
  • 条件 C# 二进制序列化

    我正在使用 BinaryFormatter 按条件序列化类及其变量 例如 Serializable public class Class1 private Class2 B Serializable public class Class2