ConstructorInfo.Invoke 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
调用此实例反映的构造函数。
重载
| 名称 | 说明 |
|---|---|
| Invoke(Object[]) |
调用具有指定参数的实例反映的构造函数,为不常用的参数提供默认值。 |
| Invoke(BindingFlags, Binder, Object[], CultureInfo) |
在派生类中实现时,在指定 |
Invoke(Object[])
- Source:
- ConstructorInfo.cs
- Source:
- ConstructorInfo.cs
- Source:
- ConstructorInfo.cs
- Source:
- ConstructorInfo.cs
- Source:
- ConstructorInfo.cs
调用具有指定参数的实例反映的构造函数,为不常用的参数提供默认值。
public:
virtual System::Object ^ Invoke(cli::array <System::Object ^> ^ parameters);
public:
System::Object ^ Invoke(cli::array <System::Object ^> ^ parameters);
public virtual object Invoke(object[] parameters);
public object Invoke(object?[]? parameters);
public object Invoke(object[] parameters);
override this.Invoke : obj[] -> obj
Public Overridable Function Invoke (parameters As Object()) As Object
Public Function Invoke (parameters As Object()) As Object
参数
- parameters
- Object[]
一个值数组,该值与此构造函数的参数的参数的数量、顺序和类型(在默认绑定器的约束下)匹配。 如果此构造函数不采用任何参数,则使用包含零个元素的数组,或 null与 Object[] parameters = new Object[0] 中一样。 未使用值显式初始化的此数组中的任何对象都将包含该对象类型的默认值。 对于引用类型元素,此值为 null. 对于值类型元素,此值为 0、0.0 或 false,具体取决于特定的元素类型。
返回
与构造函数关联的类的实例。
例外
构造函数是私有的或受保护的,调用方缺少 MemberAccess。
该 parameters 数组不包含与此构造函数接受的类型匹配的值。
调用的构造函数引发异常。
传递的参数数不正确。
调用方没有必要的代码访问权限。
注解
数组中 parameters 元素的数量、类型和顺序应与此实例反映的构造函数的参数的数量、类型和顺序相同。 在调用构造函数之前, Invoke 请确保调用方具有访问权限并验证参数是否有效。
对于完全受信任的代码,将忽略访问限制。 也就是说,每当完全信任代码时,都可以使用反射访问和调用专用构造函数、方法、字段和属性。
注释
若要创建没有实例构造函数的值类型的实例,请使用 CreateInstance 该方法。
此方法是以下重载版本的便捷方法,使用默认值。 无法重写此方法。
注释
如果使用标志授予ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess调用方,并且非公共成员的授予集仅限于调用方授予集或子集,则此方法可用于访问非公共成员。 (请参阅 反射的安全注意事项。
适用于
Invoke(BindingFlags, Binder, Object[], CultureInfo)
- Source:
- ConstructorInfo.cs
- Source:
- ConstructorInfo.cs
- Source:
- ConstructorInfo.cs
- Source:
- ConstructorInfo.cs
- Source:
- ConstructorInfo.cs
在派生类中实现时,在指定Binder参数的约束下调用由此ConstructorInfo反射的构造函数。
public:
abstract System::Object ^ Invoke(System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ parameters, System::Globalization::CultureInfo ^ culture);
public abstract object Invoke(System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object?[]? parameters, System.Globalization.CultureInfo? culture);
public abstract object Invoke(System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture);
override this.Invoke : System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj
Public MustOverride Function Invoke (invokeAttr As BindingFlags, binder As Binder, parameters As Object(), culture As CultureInfo) As Object
参数
- invokeAttr
- BindingFlags
BindingFlags指定绑定类型的值之一。
- binder
- Binder
一 Binder 个定义一组属性,并启用使用反射对成员的绑定、强制参数类型和调用成员。
binder如果是null,Binder.DefaultBinding则使用。
- parameters
- Object[]
一个类型 Object 数组,用于匹配此构造函数的参数的数量、顺序和类型,其约束为 binder。 如果此构造函数不需要参数,则传递一个包含零个元素的数组,如 Object[] parameters = new Object[0]。 未使用值显式初始化的此数组中的任何对象都将包含该对象类型的默认值。 对于引用类型元素,此值为 null. 对于值类型元素,此值为 0、0.0 或 false,具体取决于特定的元素类型。
- culture
- CultureInfo
CultureInfo用于控制类型的强制。 如果是, null则 CultureInfo 使用当前线程。
返回
与构造函数关联的类的实例。
例外
该 parameters 数组不包含与此构造函数接受的类型匹配的值,这些值受此构造函数的约束 binder。
调用的构造函数引发异常。
传递的参数数不正确。
调用方没有必要的代码访问权限。
构造函数是私有的或受保护的,调用方缺少 MemberAccess。
注解
数组中 parameters 元素的数量、类型和顺序应与此实例反映的构造函数的参数的数量、类型和顺序相同。
在调用构造函数之前, Invoke 请确保调用方具有访问权限,并且参数具有正确的数字、顺序和类型。
对于完全受信任的代码,将忽略访问限制。 也就是说,每当完全信任代码时,都可以使用反射访问和调用专用构造函数、方法、字段和属性。
注释
若要创建没有实例构造函数的值类型的实例,请使用 CreateInstance 该方法。
注释
如果使用标志授予ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess调用方,并且非公共成员的授予集仅限于调用方授予集或子集,则此方法可用于访问非公共成员。 (请参阅反射的安全注意事项。)若要使用此功能,应用程序应面向 .NET Framework 3.5 或更高版本。