【问题标题】:Getting TypeConverter error that makes no sense获取没有意义的 TypeConverter 错误
【发布时间】:2010-03-16 00:12:33
【问题描述】:

我有一个 TopMostNode 类的 TypeConverter。它扩展了 ExpandableObjectConverter。 TopMostNode 有两个属性。在属性网格中设置这些会导致设计人员正确序列化代码。但是,如果我为属性输入文本,则会收到“属性值无效”错误,详细信息如下:

“TopMostNode”类型的对象无法转换为“TopMostNode”类型。

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

【问题讨论】:

    标签: .net typeconverter


    【解决方案1】:

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

    【讨论】:

    • 我检查了,可扩展性项目正在引用我正在处理的程序集。有什么方法可以判断是否加载了多个?
    • 将 VS 的第二个副本附加到第一个副本,打破异常,然后检查 TypeAssembly 对象的值和属性。
    【解决方案2】:

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

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

    附:为了在开发时获得可供我的控件使用的设计时功能,我将设计时部分 DLL 放入 VS 的 PrivateAssemblies 文件夹中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      • 2020-01-26
      • 1970-01-01
      相关资源
      最近更新 更多