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,这很痛苦……).您应该使用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |