Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VSX包中的自定义类型转换器出现问题_C#_.net_Vsx - Fatal编程技术网

C# VSX包中的自定义类型转换器出现问题

C# VSX包中的自定义类型转换器出现问题,c#,.net,vsx,C#,.net,Vsx,我有以下问题。我有三个项目的MSVS解决方案 第一个项目是VSX项目,它显示带有属性网格的表单。 第二个是典型的C库项目,自定义类型转换器类BooleanYesNoConverter继承自BooleanConverter。此转换器用于在属性网格中显示是/否,而不是真/假。 第三个项目也是C库项目,它包含一个公共类和一个具有属性[TypeConvertertypeofBooleanYesNoConverter]的公共属性 第一个项目和第三个项目中都提到了第二个项目 当我们在VS实验配置单元中以调试

我有以下问题。我有三个项目的MSVS解决方案

第一个项目是VSX项目,它显示带有属性网格的表单。 第二个是典型的C库项目,自定义类型转换器类BooleanYesNoConverter继承自BooleanConverter。此转换器用于在属性网格中显示是/否,而不是真/假。 第三个项目也是C库项目,它包含一个公共类和一个具有属性[TypeConvertertypeofBooleanYesNoConverter]的公共属性 第一个项目和第三个项目中都提到了第二个项目

当我们在VS实验配置单元中以调试模式启动第一个项目并单击菜单时,插件在assembly.LoadFrom的帮助下加载从第三个项目生成的程序集,并使用一个公共布尔属性实例化我们的类。然后将此实例传递给propertyGrid.SelectedObject属性。属性网格显示公共属性,但在右侧显示“是/否”

我已经在coverter的方法和构造函数中设置了断点,但似乎我们没有这样做。使用标准而不是自定义类型转换器

更有趣的是,如果我将BooleanYesNoConverter类放在第三个项目中,那么它将成为n个具有类属性网格的程序集,并显示正确的是/否变体


提前感谢您的帮助

上网时,我发现不仅仅是我遇到了这样的问题。我在以下地方发现了类似的问题:

你可以在我的评论中找到另一个链接

我已经找到了适合我的决定:我写了汇编解析器。换句话说,我在插件的初始化方法中添加了以下代码:

    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,但我不想这样做,因为此转换器非常特定于项目。