2010-03-16 3 views
0

У меня есть TypeConverter для класса TopMostNode. Он расширяет ExpandableObjectConverter. TopMostNode имеет два свойства. Установка параметров в сетке свойств приводит к правильному сериализованному коду разработчику. Однако, если я печатаю текст на собственность, я получаю «Значение свойства не является допустимым» ошибка и детали говорят:Получение ошибки TypeConverter, которая не имеет смысла

Объект типа «TopMostNode» не может быть преобразован в тип «TopMostNode».

Я озадачен. Когда я перехожу через код конвертера типа ConvertFrom, он работает так, как ожидалось. Я даже не знаю, нужно было искать такую ​​проблему.

ответ

1

Возможно, у вас есть две разные версии одной и той же сборки.

+0

См. Http://stackoverflow.com/questions/2450087/how-do-you-mark-class-with-typeconverter-that-is-not-in-referenced-solution – SLaks

+0

Я проверил и проект расширяемости ссылается сборку, над которой я работаю. Любой способ узнать, загружено ли больше одного? –

+0

Прикрепите вторую копию VS к первой, обрывайте исключения, затем проверьте объекты 'Type' и' Assembly' для значения и свойства. – SLaks

0

У меня была такая же проблема при разработке элемента управления для профиля клиента .NET Framework 4.0, когда все функции времени разработки были в отдельной DLL. Проблема возникла, когда я загрузил оба проекта (основной элемент управления и его часть времени разработки) как одно из решений в VS. Тем не менее, все работало нормально, когда я пытался использовать скомпилированную производственную версию моего контроля в других проектах.

Вывод следующий: перед началом отладки вашего кода TypeConverter попробуйте использовать скомпилированную версию вашего контроля вне проектов разработки управления.

P.S. Чтобы получить функциональность времени разработки, доступную для моего управления при ее разработке, я поместил DLL-часть времени разработки в папку PrivateAssemblies VS.

Смежные вопросы