Вызовите метод с помощью Отражения о COM-объекте

У меня есть экземпляр COM-объекта..., который создается как это:

Type type = TypeDelegator.GetTypeFromProgID("Broker.Application");
Object application = Activator.CreateInstance(type);

Когда я пытаюсь вызвать метод:

type.GetMethod("RefreshAll").Invoke(application, null);

-> type.GetMethod("RefreshAll") возвраты null. Когда я пытаюсь получить все методы с type.GetMethods(), существуют только эти методы:

  1. GetLifetimeService
  2. InitializeLifetimeService
  3. CreateObjRef
  4. ToString
  5. Равняется
  6. GetHashCode
  7. GetType

Где Метод RefreshAll? И как я могу вызвать его?

7
задан Chris Barlow 17 February 2012 в 15:24
поделиться

1 ответ

Вы не можете использовать GetMethod для COM объектов, вы должны использовать другой способ:

this.application.GetType().InvokeMember("RefreshAll", BindingFlags.InvokeMethod, null, this.application, null);

Я использую этот способ в старом проекте, использующем COM, так что вы должны быть в порядке.

this.application.GetType().InvokeMember("RefreshAll", BindingFlags.InvokeMethod, null, this.application, null);

Я использую этот способ в старом проекте, который использует COM, так что он должен работать нормально для вас.

12
ответ дан 6 December 2019 в 11:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: