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

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

返回

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

例外

typeNameassemblyNamenull

无法通过 COM 创建实例。

-或-

assemblyName中找不到 typeName

找不到匹配的构造函数。

找不到 assemblyName,或者尝试加载的模块未指定文件扩展名。

无法创建抽象类的实例。

-或-

此成员是使用后期绑定机制调用的。

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

assemblyName 为空字符串(“)。

注解

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

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

有关可通过调用的方法引发的其他异常的信息,请参阅 Assembly.LoadFromCreateInstance 方法的 Exceptions 部分。

注意

从 .NET Framework 2.0 开始,如果使用 ReflectionPermissionFlag.RestrictedMemberAccess 标志向调用方授予 ReflectionPermission,并且包含非公共类型的程序集的授予集仅限于调用方授予集或子集,则此方法可用于创建非公共类型。 (请参阅反射安全注意事项。若要使用此功能,应用程序应面向 .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

用于哈希文件和生成强名称的哈希算法。

返回

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

例外

typeNameassemblyNamenull

assemblyName 为空字符串(“)。

程序集或模块加载了两次,其中包含两个不同的证据。

-或-

assemblyName 比系统定义的最大长度长。

找不到 assemblyName,或者尝试加载的模块未指定文件扩展名。

找到 assemblyName 但无法加载。

assemblyName 不是有效的程序集。

在没有所需的 WebPermission的情况下,指定了不以“file://”开头的代码库。

无法通过 COM 创建实例。

-或-

assemblyName中找不到 typeName

找不到匹配的构造函数。

无法创建抽象类的实例。

-或-

此成员是使用后期绑定机制调用的。

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

注解

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

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

有关可通过调用的方法引发的其他异常的信息,请参阅 Assembly.LoadFromCreateInstance 方法的 Exceptions 部分。

注意

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

适用于