我有以下问题。我有MSVS解决方案,其中有三个项目。VSX软件包中定制类型转换器的问题
- 第一个项目是VSX项目巫显示了它在属性网格形式。
- 其次是典型的C#库项目,自定义类型转换器类BooleanYesNoConverter继承自BooleanConverter。该转换器用于在属性网格中显示是/否,而非True/False。
- 第三个项目也是C#库项目包含与具有属性
[TypeConverter(typeof(BooleanYesNoConverter))]
有来自第一和第三到第二个项目引用一个公共财产公开课。当我们以调试模式(VS实验配置单元)启动第一个项目并点击菜单时,插件从第三个项目(借助于Assembly.LoadFrom)加载生成的程序集并实例化我们的类(使用一个公共布尔属性) 。然后它将此实例传递给propertyGrid.SelectedObject属性。属性网格显示公共属性,但是是/否在右侧显示True/False。
我已经在coverter的方法(和构造函数)中放入了断点,但好像我们没有去那里。使用标准而不是自定义类型转换器。
更有趣的是,如果我在第三个项目中放置BooleanYesNoConverter类(所以它将是我的类中的一个程序集)属性网格显示正确的Yes/No变体。
非常感谢您的帮助!
最近我找到了这个链接(http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/9d5a647e-31b1-418d-8a16-a171129a3aec/)。这个人也遇到了同样的问题。有建议将自定义转换器放入GAC,但我不想这样做,因为此转换器非常针对项目。 – Dima 2010-10-15 10:54:01