码迷,mamicode.com
首页 > 其他好文 > 详细

记关于使用XamlWriter.Save时如果对象中使用ObservableCollection<T>会报无法序列化泛型类型

时间:2019-07-09 09:16:50      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:序列化   程序   doc   object   target   解决   write   一个   时报   

FlowDocument类型的对象R中使用的对象A,而对象A中的属性B的类型为ObservedCollection<T>,导致在使用XamlWriter.Save方法时报异常

调用的目标发生了异常。(TargetInvocationException)
无法序列化泛型类型“System.Collections.ObjectModel.ObservableCollection`1[A.T]”。(InvalidOperationException)

调试后发现有两种解决方式:

1、给对象A中的属性B加特性[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]

可以让程序在序列化的时候不序列化属性B,但是设置了该特性的属性B在使用XamlWriter.Save的时候就不会保存到对应的值,导致下次查看流文档R的时候属性B的值不会在界面呈现(不适用我当前项目)。

2、新建一个类C,并继承ObservedCollection<T>,并将B的类型改为C,也可以解决无法序列化的问题

记关于使用XamlWriter.Save时如果对象中使用ObservableCollection<T>会报无法序列化泛型类型

标签:序列化   程序   doc   object   target   解决   write   一个   时报   

原文地址:https://www.cnblogs.com/JenReiChau/p/11155243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!