Застрял при попытке добавить обработчик событий в объект с поздней привязкой в ​​VB.NET - PullRequest
1 голос
/ 15 января 2020

Я застрял при попытке обработать событие, вызванное объектом с поздней привязкой.

Я дошел до загрузки сборки (sLibFile содержит местоположение библиотеки):

moAssembly = Reflection.Assembly.LoadFile(sLibFile)

Получение типа объекта, который я создаю, не проблема

moType = moAssembly.GetType("Some.Object")

А создание объекта - пустяк ....

moObject = Activator.CreateInstance(moType)

Но тогда я застрял. Объект, который я создал, предоставляет событие «GetField» со следующей подписью:

Event GetField(FieldName As String, nPageNumber As Integer, ByRef sValue As String)

Я написал подпрограмму, чтобы справиться с этим, но .... как мне добавить эту подпрограмму в качестве обработчика для этого событие? AddHandler работает только с объектами с ранней привязкой.

Я могу получить Событие в порядке .....

oEvent = moType.GetEvent("GetField")

или, возможно,

oEvent = moObject.GetType().GetEvent("GetField")

Но после этого я ' m застрял .... Как мне тогда связать это с Sub, который я написал (я назвал Sub moObject_GetField)?

oEvent.AddEventHandler(moObject, AddressOf moObject_GetField)

Это вызывает ошибку "выражение AddressOf не может быть преобразовано в '[Delegate ] 'потому что тип' [Delegate] 'объявлен как MustInherit и не может быть создан. "

Что теперь?

...