ConstructorBuilder.Invoke 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
调用此实例动态反射的构造函数。
重载
Invoke(BindingFlags, Binder, Object[], CultureInfo) |
动态调用由给定对象上的此实例所表示的构造函数,一并传递指定的参数,并受给定绑定器的约束。 |
Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) |
在指定 |
Invoke(BindingFlags, Binder, Object[], CultureInfo)
- Source:
- ConstructorBuilder.cs
动态调用由给定对象上的此实例所表示的构造函数,一并传递指定的参数,并受给定绑定器的约束。
public:
override System::Object ^ Invoke(System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ parameters, System::Globalization::CultureInfo ^ culture);
public override object Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object?[]? parameters, System.Globalization.CultureInfo? culture);
public override 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 Overrides Function Invoke (invokeAttr As BindingFlags, binder As Binder, parameters As Object(), culture As CultureInfo) As Object
参数
- invokeAttr
- BindingFlags
这必须是来自 BindingFlags 的位标志,例如 InvokeMethod、NonPublic 等。
- parameters
- Object[]
自变量列表。 此自变量数组在数量、顺序和类型方面必须与要调用的构造函数的参数相同。 如果不存在任何参数,则应为 null
。
- culture
- CultureInfo
用于控制类型强制的 CultureInfo 的实例。 如果这是 NULL,则使用当前线程的 CultureInfo。 (例如,这对于将表示 1000 的 String 转换为 Double 值是必需的,因为不同的区域性以不同的方式表示 1000。)
返回
所调用的构造函数返回的值。
例外
目前尚不支持此方法。 你可以使用 GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) 检索构造函数并在返回的 ConstructorInfo 上调用 Invoke(BindingFlags, Binder, Object[], CultureInfo)。
注解
如果构造函数没有参数,则 parameters
参数的值应为 null
。 否则,数组中 parameters
元素的数量、类型和顺序应与此实例所反映的构造函数的参数的数量、类型和顺序相同。
例如,如果此实例反射的构造函数声明为采用两个字符串的公共类,则 parameters
参数应该是长度为 2 的 Object 数组。
注意
对于完全信任的代码,将忽略访问限制。 也就是说,只要代码完全受信任,就可以使用反射访问和调用私有构造函数、方法、字段和属性。
另请参阅
适用于
Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
- Source:
- ConstructorBuilder.cs
在指定 Binder
的约束下,用指定的参数动态调用此实例反射的构造函数。
public:
override System::Object ^ Invoke(System::Object ^ obj, System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ parameters, System::Globalization::CultureInfo ^ culture);
public override object Invoke (object? obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object?[]? parameters, System.Globalization.CultureInfo? culture);
public override object Invoke (object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture);
override this.Invoke : obj * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj
Public Overrides Function Invoke (obj As Object, invokeAttr As BindingFlags, binder As Binder, parameters As Object(), culture As CultureInfo) As Object
参数
- obj
- Object
需要重新初始化的对象。
- invokeAttr
- BindingFlags
指定所需绑定类型的 BindingFlags
值之一。
- binder
- Binder
一个 Binder
,它定义一组属性并通过反射来启用绑定、自变量类型强制转换和成员调用。 如果 binder
为 null
,则使用 Binder.DefaultBinding。
- parameters
- Object[]
自变量列表。 此自变量数组在数量、顺序和类型方面必须与要调用的构造函数的参数相同。 如果没有参数,则应为一个空引用(在 Visual Basic 中为 Nothing
)。
- culture
- CultureInfo
用于控制类型强制转换的 CultureInfo。 如果这是 NULL,则使用当前线程的 CultureInfo。
返回
与构造函数关联的类的实例。
例外
目前尚不支持此方法。 你可以使用 GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) 检索构造函数并在返回的 ConstructorInfo 上调用 Invoke(BindingFlags, Binder, Object[], CultureInfo)。
注解
参数数组中元素的数量、类型和顺序应与此实例所反映的构造函数的参数的数量、类型和顺序相同。
在调用构造函数之前, Invoke
确保调用方具有访问权限,并且参数的数量、顺序和类型都正确。
对于完全信任的代码,将忽略访问限制。 也就是说,只要代码完全受信任,就可以使用反射访问和调用私有构造函数、方法、字段和属性。