【问题标题】:Can a class derived from DependencyObject marked as serializable?从 DependencyObject 派生的类可以标记为可序列化吗?
【发布时间】:2011-11-09 19:32:03
【问题描述】:

下面这句话是什么意思

DependencyObjects are not marked as serializable 

据我所知,我可以拥有一个继承自 DependencyObject 的类...并且我可以将其标记为可序列化。无论如何,序列化属性是不可继承的。

谁能帮我解释清楚。提前致谢。

【问题讨论】:

  • 在变成real question 之前,本文中缺少的东西(还不能称之为问题):1)您正在使用的平台/操作系统/编程语言 2)您正在做什么类型的序列化: text, binary, custom, ... 3) 你正在做的事情的一个小而完整的源代码示例(所涉及的确切类型)允许我们重现问题。然后我们可以有一个讨论的基础。
  • 我没有遇到任何问题......我的问题是......这句话是什么意思? - DependencyObjects 未标记为可序列化
  • 这在很大程度上取决于您对我之前评论的1)2) 的回答。你在哪里看到这个文本(在报纸上(哪个?),在博客文章(哪个?),一些你输入源代码的源代码编辑器(哪个?))?
  • 我看到kentb.blogspot.com/2009/03/…我的评论作为答案...只有这样我才能标记你的答案并给你积分
  • 好的,现在我们有了一些上下文。让我重新标记你的问题。

标签: c# wpf serializable dependencyobject


【解决方案1】:

这意味着从 DependencyObject 派生的类无法使用标准序列化程序进行序列化。作为一种解决方法,您可以使用 XamlReader/XamlWriter,如 this article 所示。

【讨论】:

    【解决方案2】:

    DependencyObject 的存在是为了利用整个依赖属性系统。这样做的一个副作用是它确实与 .NET 中采用的序列化方法不相符。

    序列化,在 .NET 中,序列化类中的字段。但是,DependencyObjects 实际上并不使用(实例)字段,而是注册的 DependencyProperties,它们存储在其他地方(如果有的话)。因此,即使您将它们标记为 [Serializable],它们也无法正确序列化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-20
      • 1970-01-01
      • 2015-02-15
      • 1970-01-01
      • 2012-11-22
      • 2015-05-10
      • 1970-01-01
      • 2016-07-23
      相关资源
      最近更新 更多