Мы переносим приложение из C # в VB для удовлетворения потребностей нашего проекта, но наткнулись на проблему с обработкой событий в VB.
Приложение использует COM Wrapper для доступа к сканеру в Silverlight.Объект создается динамически в коде, а событие добавляется в «AcquirePage».Конечно, это требует повышенного доверия.
Код на C #:
dynamic TwainSession;
(...)
TwainSession.AcquirePage += new AcquirePageDelegate(AcquirePageEventHandler);
Поскольку единственным реальным "эквивалентом" dynamic в VB является Object , мы используем:
Private TwainSession As Object
Все в порядке до того момента, когда мы хотим обработать событие этого объекта.Поскольку мы находимся в Silverlight, мы не можем знать структуру или события Объекта, поэтому необходимо создавать его динамически.В C # мы просто используем «+ =» для добавления обработчика к событию, но:
AddHandler TwainSession.AcquirePage, AddressOf AcquirePageEventHandler
В VB дает: «AcquirePage» не является событием «объекта»
Есть ли способ обойти это?