我有一个TopMostNode类的TypeConverter。它扩展了ExpandableObjectConverter。 TopMostNode有两个属性。在属性网格中设置它们会为设计者生成正确的序列化代码。但是,如果我输入属性的文本,我会收到“属性值无效”错误,详细说明:
“TopMostNode”类型的对象无法转换为“TopMostNode”类型。
我很困惑。当我单步执行类型转换器ConvertFrom代码时,它会按预期运行。我甚至不知道是不是要开始寻找这样的问题。
答案 0 :(得分:1)
您可能已加载了相同装配的两个不同版本。
答案 1 :(得分:0)
当开发.NET Framework 4.0客户端配置文件的控件时,当所有设计时功能都在一个单独的DLL中时,我遇到了同样的问题。当我将两个项目(核心控件及其设计时部分)作为一个解决方案加载到VS中时出现问题。但是,当我尝试在其他项目中使用我的控件的编译生产版本时,一切正常。
结论如下:在开始调试TypeConverter代码之前,尝试在控件开发项目之外使用控件的编译版本。
P.S。为了在开发时为我的控件提供设计时功能,我将设计时部件DLL放入VS的PrivateAssemblies文件夹中。