Activator.CreateComInstanceFrom 方法

定义

创建指定名称的 COM 对象的实例。

重载

CreateComInstanceFrom(String, String)

使用已命名的程序集文件和无参数构造函数,创建指定名称的 COM 对象的实例。

CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

使用已命名的程序集文件和无参数构造函数,创建指定名称的 COM 对象的实例。

CreateComInstanceFrom(String, String)

使用已命名的程序集文件和无参数构造函数,创建指定名称的 COM 对象的实例。

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateComInstanceFrom(System::String ^ assemblyName, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle CreateComInstanceFrom (string assemblyName, string typeName);
static member CreateComInstanceFrom : string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateComInstanceFrom (assemblyName As String, typeName As String) As ObjectHandle

参数

assemblyName
String

包含某程序集的文件的名称,将在该程序集内查找名为 typeName 的类型。

typeName
String

要为其创建实例的类型的名称。

返回

必须解包才能访问新创建的对象或 null 实例 Nullable<T> 的句柄。

例外

typeNameassemblyNamenull

无法通过 COM 创建实例。

- 或 -

assemblyName 中未找到 typename

未找到匹配的构造函数。

未找到 assemblyName,或者你正在试图加载的模块未指定文件扩展名。

无法创建抽象类的实例。

- 或 -

使用晚期绑定机制调用了此成员。

调用方不能为非继承自 MarshalByRefObject 的对象提供激活属性。

assemblyName 为空字符串 ("")。

注解

ObjectHandle.Unwrap使用 方法可解包返回值。

System.Runtime.InteropServices.ComVisibleAttribute必须显式或默认将值为 的属性true应用于 COM 类型,以便CreateComInstanceFrom该方法可以创建该类型的实例;否则会TypeLoadException引发 。

有关可由调用的方法引发的其他异常的信息,请参阅 和 CreateInstance 方法的Assembly.LoadFrom异常部分。

注意

从 .NET Framework 2.0 开始,如果调用方已使用 标志授予ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess调用方,并且包含非公共类型的程序集的授权集仅限于调用方授权集或其子集,则此方法可用于创建非公共类型。 (请参阅 Reflection.) 安全注意事项若要使用此功能,应用程序应面向 .NET Framework 3.5 或更高版本。

适用于

CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

使用已命名的程序集文件和无参数构造函数,创建指定名称的 COM 对象的实例。

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateComInstanceFrom(System::String ^ assemblyName, System::String ^ typeName, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
public static System.Runtime.Remoting.ObjectHandle CreateComInstanceFrom (string assemblyName, string typeName, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
static member CreateComInstanceFrom : string * string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateComInstanceFrom (assemblyName As String, typeName As String, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As ObjectHandle

参数

assemblyName
String

包含某程序集的文件的名称,将在该程序集内查找名为 typeName 的类型。

typeName
String

要为其创建实例的类型的名称。

hashValue
Byte[]

计算所得的哈希代码的值。

hashAlgorithm
AssemblyHashAlgorithm

用于对文件进行哈希计算并生成强名称的哈希算法。

返回

必须解包才能访问新创建的对象或 null 实例 Nullable<T> 的句柄。

例外

typeNameassemblyNamenull

assemblyName 为空字符串 ("")。

一个程序集或模块用两个不同的证据加载了两次。

- 或 -

assemblyName 超过系统定义的最大长度。

未找到 assemblyName,或者你正在试图加载的模块未指定文件扩展名。

assemblyName 已找到,但无法加载。

assemblyName 不是有效的程序集。

指定了不以“file://”开头的基本代码,且没有所需的 WebPermission

无法通过 COM 创建实例。

- 或 -

assemblyName 中未找到 typename

未找到匹配的构造函数。

无法创建抽象类的实例。

- 或 -

使用晚期绑定机制调用了此成员。

调用方不能为非继承自 MarshalByRefObject 的对象提供激活属性。

注解

ObjectHandle.Unwrap使用 方法可解包返回值。

System.Runtime.InteropServices.ComVisibleAttribute必须显式或默认将值为 的属性true应用于 COM 类型,以便CreateComInstanceFrom该方法可以创建该类型的实例;否则会TypeLoadException引发 。

有关可由调用的方法引发的其他异常的信息,请参阅 和 CreateInstance 方法的Assembly.LoadFrom异常部分。

注意

从 .NET Framework 2.0 开始,如果调用方已使用 标志授予ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess调用方,并且包含非公共类型的程序集的授权集仅限于调用方授权集或其子集,则此方法可用于创建非公共类型。 (请参阅 Reflection.) 安全注意事项若要使用此功能,应用程序应面向 .NET Framework 3.5 或更高版本。

适用于