gpt4 book ai didi

c# - 在 COM 对象上使用反射调用方法

转载 作者:太空狗 更新时间:2023-10-29 19:57:45 24 4
gpt4 key购买 nike

我有一个 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. 获取生命周期服务
  2. 初始化生命周期服务
  3. 创建对象引用
  4. 到字符串
  5. 等于
  6. 获取哈希码
  7. 获取类型

RefreshAll 方法在哪里?我该如何调用它?

最佳答案

您不能在 COM 对象上使用 GetMethod,您必须使用不同的方法方式:

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

我在一个使用 COM 的旧项目中使用这种方式,所以它应该适合你。

关于c# - 在 COM 对象上使用反射调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2773022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com