加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何序列化附加属性

发布时间:2020-12-16 01:32:47 所属栏目:百科 来源:网络整理
导读:我正在使用Composite Application Library编写.NET3.5,WPF应用程序.应用程序分为几个模块. 在基础架构模块中,我已经定义了NetworkNode对象.网络模块管理网络节点的集合,并使用XmlSerializer来存储/加载此集合.到目前为止,每件事都有效. 但我有其他模块,例如N
我正在使用Composite Application Library编写.NET3.5,WPF应用程序.应用程序分为几个模块.

在基础架构模块中,我已经定义了NetworkNode对象.网络模块管理网络节点的集合,并使用XmlSerializer来存储/加载此集合.到目前为止,每件事都有效.

但我有其他模块,例如NodeModule.如果在网络模块中选择了NetworkNode,则会使用EventAggregator将事件发布到其他模块.这些模块可以使用附加属性将各种信息附加到NetworkNode.

问题是NetworkModule不了解其他模块,因此这些属性没有被序列化.有可能以某种方式列出并序列化附加到对象的所有属性?或者我是否必须更改概念并使用除附加属性之外的其他内容?

问候

解决方法

您可以使用 DependencyObject.GetLocalValueEnumerator列出在对象上定义的所有依赖项属性(附加或不附加):

LocalValueEnumerator propEnumerator = foo.GetLocalValueEnumerator();
    while (propEnumerator.MoveNext())
    {
        Console.WriteLine ("{0} = {1}",propEnumerator.Current.Property.Name,propEnumerator.Current.Value);
    }

但是,这对XML序列化没有帮助(除非你实现了IXmlSerializable,这很痛苦……).您应该使用XamlWriter(我假设是Drew所说的,因为没有XamlSerializer …)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读