System.Activator.CreateInstance 方法 (String, String, Object[])
方法描述
使用命名的程序集和默认构造函数,创建名称已指定的类型的实例。
语法定义(C# System.Activator.CreateInstance 方法 (String, String, Object[]) 的用法)
public static ObjectHandle CreateInstance( string assemblyName, string typeName, Object[] activationAttributes )
参数/返回值
参数值/返回值 | 参数类型/返回类型 | 参数描述/返回描述 |
---|---|---|
assemblyName | System-String | 将在其中查找名为 typeName 的类型的程序集的名称。如果 assemblyName 为 null,则搜索正在执行的程序集。 |
typeName | System-String | 首选类型的名称。 |
activationAttributes | System-Object[] | 包含一个或多个可以参与激活的特性的数组。通常为包含单个 UrlAttribute 对象的数组。UrlAttribute 指定激活远程对象所需的 URL。 |
返回值 | System.Runtime.Remoting.ObjectHandle | 要访问新创建的实例则必须解包的句柄。 |
提示和注释
使用 ObjectHandle.Unwrap 解包返回值。
activationAttributes 参数与客户端激活对象相关;请参见Client Activation。
注意
从 .NET Framework 2.0 版 Service Pack 1 开始,如果已使用 ReflectionPermissionFlag.RestrictedMemberAccess 标志授予调用方 ReflectionPermission,并且非公共类型的授予集限制为调用方的授予集或其子集,则此方法可用于创建非公共类型。 (请参见 反射的安全注意事项。)
若要使用此功能,您的应用程序应面向 .NET Framework 3.5 版 或更高版本。
System.Activator.CreateInstance 方法 (String, String, Object[])例子
异常
异常 | 异常描述 |
---|---|
ArgumentNullException | typeName 为 null。 |
MissingMethodException | 找不到匹配的公共构造函数。 |
TypeLoadException | 在 assemblyName 中找不到 typename。 |
FileNotFoundException | 未找到 assemblyName。 |
MethodAccessException | 调用方没有调用此构造函数的权限。 |
MemberAccessException | 无法创建抽象类的实例,或者用后期绑定机制调用了该成员。 |
InvalidComObjectException | COM 类型不是通过 GetTypeFromProgID 或 GetTypeFromCLSID 获得的。 |
NotSupportedException |
|
BadImageFormatException |
|
FileLoadException | 用两个不同的证据将一个程序集或模块加载了两次。 |
TargetInvocationException | 尝试在 activationAttributes 中指定的目标中进行远程激活时发生错误。 |
版本信息
.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1
适用平台
Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。