2010-03-16 83 views
0

我有一个TypeConverter为TopMostNode类。它扩展了ExpandableObjectConverter。 TopMostNode有两个属性。在属性网格中设置这些结果会导致设计人员正确地序列化代码。但是,如果我在文字的物业类型,我得到一个“属性值无效”的错误和细节说:获取TypeConverter错误,没有意义

型“TopMostNode”的对象不能转换为类型“TopMostNode”。

我很困惑。当我通过类型转换器ConvertFrom代码时,它按预期运行。我甚至不知道要开始寻找这样的问题。

回答

1

您可能会加载相同程序集的两个不同版本。

+0

请参阅http://stackoverflow.com/questions/2450087/how-do-you-mark-class-with-typeconverter-that-is-not-in-referenced-solution – SLaks 2010-03-16 00:14:26

+0

我已检查并且可扩展性项目正在引用我正在研究的组件。任何方式来判断是否加载了多个? – 2010-03-16 00:32:11

+0

将VS的第二个副本附加到第一个副本,打破异常,然后检查Type和Assembly对象的值和属性。 – SLaks 2010-03-16 00:35:44

0

当开发.NET Framework 4.0客户端配置文件的控件时,当所有设计时功能位于单独的DLL中时,我遇到同样的问题。当我将两个项目(核心控件及其设计时间部分)作为VS的一个解决方案加载时,问题就出现了。但是,当我试图在其他项目中使用我的控件的编译生产版本时,所有工作都正常。

结论如下:开始调试您的TypeConverter代码之前,尝试在控件开发项目之外使用您的控件的编译版本。

P.S.为了在开发时为我的控件提供设计时功能,我将设计时部分DLL放入VS的PrivateAssemblies文件夹中。