System.Activator.CreateInstance 方法 (Type, BindingFlags, Binder, Object[], CultureInfo)
方法描述
使用与指定参数匹配程度最高的构造函数创建指定类型的实例。
语法定义(C# System.Activator.CreateInstance 方法 (Type, BindingFlags, Binder, Object[], CultureInfo) 的用法)
public static Object CreateInstance( Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture )
参数/返回值
参数值/返回值 | 参数类型/返回类型 | 参数描述/返回描述 |
---|---|---|
type | System-Type | 要创建的对象的类型。 |
bindingAttr | System-Reflection-BindingFlags | 影响 type 构造函数搜索的零个或多个位标志的组合。如果 bindingAttr 为零,则对公共构造函数进行区分大小写的搜索。 |
binder | System-Reflection-Binder | 使用 bindingAttr 和 args 来查找和标识 type 构造函数的对象。如果 binder 为 null,则使用默认联编程序。 |
args | System-Object[] | 与要调用构造函数的参数数量、顺序和类型匹配的参数数组。如果 args 为空数组或 null,则调用不带任何参数的构造函数(默认构造函数)。 |
culture | System-Globalization-CultureInfo | 区域性特定的信息,这些信息控制将 args 强制转换为 type 构造函数所声明的正式类型。如果 culture 为 null,则使用当前线程的 CultureInfo。 |
返回值 | System.Object | 对新创建对象的引用。 |
提示和注释
要调用的构造函数必须提供在指定联编程序和绑定特性约束下,与指定参数列表匹配程度最高的匹配项。
注意
从 .NET Framework 2.0 版 Service Pack 1 开始,如果已使用 ReflectionPermissionFlag.RestrictedMemberAccess 标志授予调用方 ReflectionPermission,并且包含非公共类型和成员的程序集的授予集限制为调用方的授予集或其子集,则此方法可用于访问非公共类型和成员。 (请参见 反射的安全注意事项。)
若要使用此功能,您的应用程序应面向 .NET Framework 3.5 版 或更高版本。
System.Activator.CreateInstance 方法 (Type, BindingFlags, Binder, Object[], CultureInfo)例子
异常
异常 | 异常描述 |
---|---|
ArgumentNullException | type 为 null。 |
ArgumentException |
|
NotSupportedException |
|
TargetInvocationException | 被调用的构造函数引发异常。 |
MethodAccessException | 调用方没有调用此构造函数的权限。 |
MemberAccessException | 无法创建抽象类的实例,或者用后期绑定机制调用了该成员。 |
InvalidComObjectException | COM 类型不是通过 GetTypeFromProgID 或 GetTypeFromCLSID 获得的。 |
MissingMethodException | 未找到匹配的构造函数。 |
COMException | type 是一个 COM 对象,但用于获取类型的类标识符无效,或被标识的类未注册。 |
TypeLoadException | type 不是有效的类型。 |
版本信息
.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 系统要求。