C# VSX包中的自定义类型转换器出现问题
我有以下问题。我有三个项目的MSVS解决方案 第一个项目是VSX项目,它显示带有属性网格的表单。 第二个是典型的C库项目,自定义类型转换器类BooleanYesNoConverter继承自BooleanConverter。此转换器用于在属性网格中显示是/否,而不是真/假。 第三个项目也是C库项目,它包含一个公共类和一个具有属性[TypeConvertertypeofBooleanYesNoConverter]的公共属性 第一个项目和第三个项目中都提到了第二个项目 当我们在VS实验配置单元中以调试模式启动第一个项目并单击菜单时,插件在assembly.LoadFrom的帮助下加载从第三个项目生成的程序集,并使用一个公共布尔属性实例化我们的类。然后将此实例传递给propertyGrid.SelectedObject属性。属性网格显示公共属性,但在右侧显示“是/否” 我已经在coverter的方法和构造函数中设置了断点,但似乎我们没有这样做。使用标准而不是自定义类型转换器 更有趣的是,如果我将BooleanYesNoConverter类放在第三个项目中,那么它将成为n个具有类属性网格的程序集,并显示正确的是/否变体C# VSX包中的自定义类型转换器出现问题,c#,.net,vsx,C#,.net,Vsx,我有以下问题。我有三个项目的MSVS解决方案 第一个项目是VSX项目,它显示带有属性网格的表单。 第二个是典型的C库项目,自定义类型转换器类BooleanYesNoConverter继承自BooleanConverter。此转换器用于在属性网格中显示是/否,而不是真/假。 第三个项目也是C库项目,它包含一个公共类和一个具有属性[TypeConvertertypeofBooleanYesNoConverter]的公共属性 第一个项目和第三个项目中都提到了第二个项目 当我们在VS实验配置单元中以调试
提前感谢您的帮助 上网时,我发现不仅仅是我遇到了这样的问题。我在以下地方发现了类似的问题: 你可以在我的评论中找到另一个链接 我已经找到了适合我的决定:我写了汇编解析器。换句话说,我在插件的初始化方法中添加了以下代码:
AppDomain.CurrentDomain.AssemblyResolve +=
new ResolveEventHandler(LoadAssembly);
此方法用于插件的类:
private Assembly LoadAssembly(object sender, ResolveEventArgs e)
{
int commaIndex = e.Name.IndexOf(',');
string fileName = e.Name.Substring(0, commaIndex) + ".dll";
Assembly assembly = Assembly.LoadFrom(fileName);
return assembly;
}
现在它工作正常。最近我找到了这个链接。这个人也遇到了同样的问题。有人建议将自定义转换器放入GAC,但我不想这样做,因为此转换器非常特定于项目。