我正在为我的WPF应用程序设计一个拖放系统。
它的工作方式是:
这在我的测试应用中运行良好。但是,现在我正在尝试在我的真实应用程序中执行此操作,我遇到了障碍。我试图反序列化的类(Microsoft.TeamFoundation.WorkItemTracking.Client.FieldDefinition)没有公共构造函数。
当我尝试使用此代码反序列化它时:
XmlReader reader = XmlReader.Create(new StringReader(xamlString));
object elt = XamlReader.Load(reader);
我收到此错误:
Cannot create object of type 'Microsoft.TeamFoundation.WorkItemTracking.Client.FieldDefinition'. CreateInstance failed, which can be caused by not having a public default constructor for 'Microsoft.TeamFoundation.WorkItemTracking.Client.FieldDefinition
我吐司吗?有没有办法反序列化这个类?关于如何通过拖放转移这个类的任何其他想法? (我正在使用FluidKit Drag and Drop Advisers。)
答案 0 :(得分:3)
我已经使用FieldDefinition
类了很多,而且你对XML序列化的问题最少的是内部构造函数。这是一种非常复杂的类型,通常具有(间接)COM值和几个GC句柄的引用。序列化该类型的实例并不容易。
您可以做的是序列化FieldDefinition
的ReferenceName。然后,您可以使用它在以后重建FieldDefinition
对象。