C# 中的 GetTypeFromProgID() 方法

2024 年 8 月 29 日 | 4 分钟阅读

在本文中,您将了解 C# 中 GetTypeFromProgID() 方法的语法、参数和示例。

什么是 GetTypeFromProgID() 方法?

GetTypeFromProgID() 方法用于在 C# 中获取 COM(组件对象模型)对象的类型信息,该信息基于对象的程序标识符 (ProgID)。ProgID 是与在 Windows 注册表中注册的 COM 对象相关联的人类可读标识符。使用此方法,开发人员可以在编译时不知道这些对象的类型的情况下处理 COM 对象,因为运行时会进行动态类型解析。

开发人员可以利用 COM 对象的 ProgID 动态获取适当的 Type 对象,而不是在代码中显式引用 COM 对象的类型。

语法

它具有以下语法:

  • public: 此方法可以在类外部访问。
  • static: 此方法是 Type 类的一部分,而不是一个类实例独有的。
  • Type: 它是方法的返回类型。它显示 Program_ID 已识别的 COM 对象的类型信息。
  • GetTypeFromProgID: 该方法的名称是 GetTypeFromProgID
  • (string program_ID): 参数列表包含在 string program_ID 中。它指定要获取其类型信息的 COM 对象的 Program_ID。program_ID 是 COM 对象的 ProgID。

返回值

Type 对象表示指定 COM 对象的类型信息。如果无法获取或找到 ProgID,此方法返回 null。

异常

  • 如果 ProgID 参数为 null,则引发 null ArgumentException
  • 如果找不到或无法访问指定的 ProgID,则返回 null,并且不引发异常。
  • GetTypeFromProgID() 使用反射,这是一种用于检查和修改类型和对象的有效运行时工具。
  • 开发人员可以通过反射搜索类型元数据、动态创建实例、调用方法、访问属性和执行其他操作。

示例-1

让我们举一个例子来说明 C# 中的 GetTypeFromProgID() 方法。

输出

An error has occurred: Unmanaged activation is not supported

说明

总的来说,此代码演示了如何在 C# 中使用 COM 对象的 ProgID 与其动态交互,包括收集类型信息、创建实例、调用方法和访问属性。通过轻松处理执行期间可能发生的任何异常,错误处理确保了健壮性。

用途

  1. 在动态与 COM 对象交互时,开发人员通常选择这种方法。
  2. 常见情况包括系统服务访问、旧版 COM 组件集成以及外部程序(如 Microsoft Office)的自动化。
  3. 可以使用获取的 Type 对象创建 COM 对象的实例、调用其方法并动态访问其属性。

示例-2

可以使用 C# 中的 "Type.GetTypeFromProgID(String progID, String server)" 方法检索 COM(组件对象模型)对象的类型信息。此方法标识 COM 对象的程序标识符 (ProgID) 以及它所在的服务器名称。

输出

An error has occurred: Unmanaged activation is not supported

结论

总之,该代码片段演示了如何根据 COM 对象的 ProgID 动态获取其类型信息,并可以选择包含 COM 对象所在的服务器。在确保健壮的错误处理的同时,它提供了从本地和远程机器访问 COM 对象的灵活性。