Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

​Интересный глюк с плугинами.

148  
Murr патриот01.09.17 17:25
Murr
01.09.17 17:25 

Интересный глюк с плугинами.


Словил новый глюк.


Код тот же, что Я постил для AlexNek недавно в топике по загрузке,


Вызов currentAssembly.GetTypes() вдруг перестал работать в половине случаев.


Т.е. Ассембля - грузится, есть имя и т.п, но как только требуется получить список типов - все отваливается.

Причем отваливается со странным сообщением об невозможности загрузить тип. На сам тип ссылки нет.


Test Name: TestMethod1

Test FullName: TimeCalculator.TimeCalculator.Tests.TTimeCalculator_Tests.TestMethod1

Test Outcome: Failed

Test Duration: 0:09:08.8491405

Result StackTrace:

at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)

at System.Reflection.Assembly.GetTypes()

at ProcessingInfo.PluginsHandler.TEquipmentHostProvider.GetAppPlugIns(List`1 assemblies)

....

Result Message:

Test method TimeCalculator.TimeCalculator.Tests.TTimeCalculator_Tests.TestMethod1 threw exception:

System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.


Глюк - стабилен, перезаагрузка Стыдии и системы на него не влияют...


Дело, похоже, в следующем:

- Я переименовал одну из интерфейсных дллок

- все построилось с новой дллкой, но старая осталась в системе

- с чем именно линкуется проект пока не смотрел, но похоже что со старой дллкой.


Хотя... возможно, что не обновились дллки плугинов...


В общем - глюк...



#1 
Murr патриот01.09.17 17:37
Murr
NEW 01.09.17 17:37 
в ответ Murr 01.09.17 17:25

Все оказалось простенько - не обновились дллки в папочке плугинов, а дллку с интерфейсами Я удалиl...

#2 
Murr патриот01.09.17 18:10
Murr
NEW 01.09.17 18:10 
в ответ Murr 01.09.17 17:37

В аттаче - проект с другим глюком - у виртуальных функций.


С удовольствием обсужу варианты обхода, кроме очевидного хранения с словаре объекта. спок

#3 
Murr патриот05.09.17 11:50
Murr
NEW 05.09.17 11:50 
в ответ Murr 01.09.17 18:10

Как-то странно получается...

В пятницу - не работало.

Два дня выходных.

В понедельник - не знаю, не работал.

Сегодня - что-то работает.


А ведь в проекте ничего не менялось.


Народ пишет, что сталкивался с такой же ситуацией.

Решалось - введением в базовый класс дополнительного метода, вызывающего виртуальный метод.

По мне - вроде лишняя работа - тип объекта и так известен при получении делегата.

Но вот беда - не всегда работает...


Что смешно - починить вызов виртуального метода через делегат можно... добавив пустой комментарий в класс... смущ

Да, вещи совершенно не связанные. Никак не связанные. Но тем не мение в классе с комментарием вызов делается корректно.... безумбезум

#4