У меня есть следующий вопрос. У меня есть решение MSVS с тремя проектами.Проблема с преобразователем пользовательского типа в пакете VSX
- первый проект VSX проект ведьмой показывает форму с сеткой свойств в нем.
- второй типичный проект библиотеки C# с пользовательским типом преобразователя класса BooleanYesNoConverter унаследован от BooleanConverter. Этот конвертер используется для отображения Yes/No в сетке свойств вместо True/False.
- третьего проект также C# библиотеки проект, который содержит открытый класс с одной общественной собственностью, которая имеет атрибут
[TypeConverter(typeof(BooleanYesNoConverter))]
Есть ссылки на второй проект от первого и третьего.
Когда мы начинаем первый проект в режиме отладки (в экспериментальном улье VS) и нажимаем на меню, сборка плагинов загружается из третьего проекта (с помощью Assembly.LoadFrom) и создает экземпляр нашего класса (с одним общедоступным логическим свойством) , Затем он передает этот экземпляр свойству propertyGrid.SelectedObject. Сетка свойств отображает открытое свойство, но вместо этого Да/Нет показывает True/False справа.
Я поставил точки останова в методах укрытия (и конструкторе), но похоже, что мы туда не поехали. Вместо обычного преобразователя типов используется стандарт.
Интересно, что если я поместил класс BooleanYesNoConverter в третий проект (так что это будет одна сборка с моим классом), то сетка свойств показывает правильные варианты да/нет.
Благодарим за помощь!
Недавно я нашел эту ссылку (http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/9d5a647e-31b1-418d-8a16-a171129a3aec/). Этот человек также сталкивается с той же проблемой. Есть предложение поместить пользовательские конвертеры в GAC, но я не делаю этого, чтобы этот конвертер был очень специфичным для проекта. – Dima