Activator.CreateComInstanceFrom 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
创建指定名称的 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
的句柄。
例外
typeName
或 assemblyName
null
。
找不到匹配的构造函数。
找不到 assemblyName
,或者尝试加载的模块未指定文件扩展名。
调用方无法为不继承自 MarshalByRefObject的对象提供激活属性。
assemblyName
为空字符串(“)。
注解
使用 ObjectHandle.Unwrap 方法解包返回值。
必须显式或默认将具有 true
值的 System.Runtime.InteropServices.ComVisibleAttribute 属性应用于 COM 类型,以便 CreateComInstanceFrom 方法可以创建该类型的实例;否则,将引发 TypeLoadException。
有关可通过调用的方法引发的其他异常的信息,请参阅 Assembly.LoadFrom 和 CreateInstance 方法的 Exceptions 部分。
注意
从 .NET Framework 2.0 开始,如果使用 ReflectionPermissionFlag.RestrictedMemberAccess 标志向调用方授予 ReflectionPermission,并且包含非公共类型的程序集的授予集仅限于调用方授予集或子集,则此方法可用于创建非公共类型。 (请参阅反射
适用于
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
的句柄。
例外
typeName
或 assemblyName
null
。
assemblyName
为空字符串(“)。
找不到 assemblyName
,或者尝试加载的模块未指定文件扩展名。
找到 assemblyName
但无法加载。
assemblyName
不是有效的程序集。
在没有所需的 WebPermission
的情况下,指定了不以“file://”开头的代码库。
找不到匹配的构造函数。
调用方无法为不继承自 MarshalByRefObject的对象提供激活属性。
注解
使用 ObjectHandle.Unwrap 方法解包返回值。
必须显式或默认将具有 true
值的 System.Runtime.InteropServices.ComVisibleAttribute 属性应用于 COM 类型,以便 CreateComInstanceFrom 方法可以创建该类型的实例;否则,将引发 TypeLoadException。
有关可通过调用的方法引发的其他异常的信息,请参阅 Assembly.LoadFrom 和 CreateInstance 方法的 Exceptions 部分。
注意
从 .NET Framework 2.0 开始,如果使用 ReflectionPermissionFlag.RestrictedMemberAccess 标志向调用方授予 ReflectionPermission,并且包含非公共类型的程序集的授予集仅限于调用方授予集或子集,则此方法可用于创建非公共类型。 (请参阅反射