.net XmlSerializer,忽略基类属性

2023-12-04

假设我们有一个从基类“System.Windows.Controls”派生的类“SerializedLabel”。

[XmlRoot("SerializableLabel")]
public class SerializableLabel : Label
{
    public string foo = "bar";
}

我想序列化此类,但忽略父类中的所有属性。理想情况下,xml 看起来像这样:

<SerializableLable>
    <foo>bar</foo>
</SerializableLable>

如何最好地实现这一目标?

我的第一次尝试使用了典型的 XmlSerializer 方法:

XmlSerializer s = new XmlSerializer(typeof(SerializableLabel));
TextWriter w = new StreamWriter("test.xml");
s.Serialize(w, lbl);
w.Close();

但这会引发异常,因为序列化程序尝试序列化作为接口的基类属性(ICommand Command)。


上述问题(包括 JP 指出的问题)的一个可能根源是您的类层次结构试图违反里氏替换原则。简单来说,派生类尝试not做基类已经做的事情。换句话说,您正在尝试创建一个不可替代基本标签的派生标签。

这里最有效的补救措施可能是将以下两件事分开:可序列化标签它尝试执行以下操作:(a) 与 UI 相关的函数;(b) 存储可序列化的数据,并将它们放在不同的类中。

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

.net XmlSerializer,忽略基类属性 的相关文章

随机推荐

  • 是否可以自动选择正确的客户端证书?

    我已经使用 SSL 客户端证书配置了 Apache httpd 网站 以便只有在 Web 浏览器中安装了正确证书的用户才能访问该网站 如果仅安装了一个客户端证书 Web 浏览器将自动选择它 这不是默认设置 但可以在设置对话框中的某处进行配置
  • Invoke-WebRequest,带参数的 POST

    我正在尝试 POST 到 uri 并发送参数username me Invoke WebRequest Uri http example com foobar Method POST 如何使用 POST 方法传递参数 将参数放入哈希表中并像
  • 使用C#获取SMTP服务器证书

    如何使用 C 连接到支持 STARTTLS 的 SMTP 服务器并获取其 SSL 证书 我知道可以使用 openssl 来完成类似的事情 openssl s client starttls smtp crlf connect 192 168
  • 在 Java 中检查结果集的有效方法

    我正在运行一个 select 命令 该命令返回 1 000 000 行 迭代 ResultSet 下面的代码需要 5 分钟才能执行 有没有更快的方法来迭代 ResultSet conn getDbConnection Statement c
  • 为什么 JavaScript 设置超时不起作用? [关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我正在尝试使用 setTimeout 但它不起作用 任何帮助表示赞赏 有人知道怎么修这个东西吗 var button document getElementById reactionTes
  • 我可以使用

    在文章之后 我有与文章相关的标签列表 将这些标签的列表包装在语义上是否正确
  • 关于View Controller的视图问题

    当我们访问视图控制器的视图属性时 它总是代表整个屏幕还是可以是部分屏幕 间接地说 一个视图控制器可以有多个视图属性吗 donkim 是对的 但不要相信我的话 请参阅 Rincewind 的这篇文章 https devforums apple
  • 有没有办法在运行 64 位的 IE10 中默认设置 Quirks 模式

    我想知道是否有办法让我的 IE10 浏览器在打开时自动设置为 Quirks 模式 我使用的是 Windows 8 64 位 我正在访问一个需要处于怪异模式的网站 当我打开浏览器时 我仍然需要将其更改为怪异模式才能正确访问该网站 当我重新启动
  • 如何在 Android 中截取视频的屏幕截图

    我正在播放一个视频 在某些时候 我需要暂停视频 进行捕获 然后在绘画活动中使用该图像来修改它 问题是 如果我尝试保存视频 图片将是黑色的 尝试过setDrawingCacheEnabled true 可以对视频进行截图吗 你有没有尝试过Th
  • 我怎样才能选择一个html元素,无论它在selenium中的哪个框架中?

    我正在尝试选择一个驻留在 iframe 内并且可能驻留在其他 iframe 中的元素 是否可以在 python selenium 中的某些 子 iframe 中选择一个元素 而无需先选择 iframe 有没有办法以某种方式 循环 每个 if
  • 如何更改Python循环中的for循环迭代器变量?

    我想知道是否可以在 for 循环中更改迭代器的值 例如 我想编写一个程序来通过以下方式计算数字的素因数 def primeFactors number for i in range 2 number 1 if number i 0 prin
  • 处理多个 SIGCHLD

    在运行 Linux 2 6 35 的系统中 我的程序创建许多子进程并监视它们 如果子进程死亡 我会进行一些清理并再次生成该进程 我用signalfd 得到SIGCHLD我的进程中发出信号 signalfd异步使用libevent 当对非实时
  • matheca中的包导入问题

    在mathematica中 我使用的是mma 5 0 猜很老 如果我输入以下一行 Needs Graphics Master Animate Plot Sin n x x 0 2 Pi Axes gt False n 1 6 1 然后我收到
  • Dockerfile 无法构建

    直到几天前Dockerfile工作正常 当我今天尝试再次构建它时 它在终端中给出以下错误 我尝试使用多个 docker 基础映像 但仍然给出相同的错误 谁能帮我这个 我不认为我错过了什么 如果我错过了 它应该早先给我错误 但为什么现在呢 E
  • TempData 在 ASP.NET MVC 2 中读取后保留

    在 ASP NET MVC 2 中 TempData值将一直保留到会话结束或被读取为止 在里面微软的话 TempData 的值一直持续到 它被读取或直到会话时间 出去 以这种方式持久化 TempData 启用重定向等场景 因为 TempDa
  • pandas groupby 到嵌套 json

    我经常使用 pandas groupby 来生成堆叠表 但后来我经常想将生成的嵌套关系输出到 json 有什么方法可以从它生成的堆叠表中提取嵌套的 json 文件吗 假设我有一个像这样的 df year office candidate a
  • 对空集/NA 的 NA 集求和而不是 0?

    The 求和函数如果应用于空集则返回 0 如果将其应用于一组 NA 值 是否有一种简单的方法可以使其返回 NA 这里有一个borrowed例子 test lt data frame name rep c A B C each 4 var1
  • 如何获取 ASP.NET MVC 中模型状态错误的集合?

    如何获取视图中的错误集合 我不想使用 Html Helper 验证摘要或验证消息 相反 我想检查错误以及是否有错误以特定格式显示它们 另外 在输入控件上 我想检查特定的属性错误并向输入添加一个类 附 我正在使用 Spark View Eng
  • Python速度测试-时差-毫秒

    在 Python 中比较 2 次以加速测试一段代码的正确方法是什么 我尝试阅读 API 文档 我不确定我是否理解 timedelta 的事情 到目前为止我有这个代码 from datetime import datetime tstart
  • .net XmlSerializer,忽略基类属性

    假设我们有一个从基类 System Windows Controls 派生的类 SerializedLabel XmlRoot SerializableLabel public class SerializableLabel Label p