Binder.BindToField(BindingFlags, FieldInfo[], Object, CultureInfo) 方法

定义

基于指定的判据,从给定的字段集中选择一个字段。

public:
 abstract System::Reflection::FieldInfo ^ BindToField(System::Reflection::BindingFlags bindingAttr, cli::array <System::Reflection::FieldInfo ^> ^ match, System::Object ^ value, System::Globalization::CultureInfo ^ culture);
public abstract System.Reflection.FieldInfo BindToField (System.Reflection.BindingFlags bindingAttr, System.Reflection.FieldInfo[] match, object value, System.Globalization.CultureInfo? culture);
public abstract System.Reflection.FieldInfo BindToField (System.Reflection.BindingFlags bindingAttr, System.Reflection.FieldInfo[] match, object value, System.Globalization.CultureInfo culture);
abstract member BindToField : System.Reflection.BindingFlags * System.Reflection.FieldInfo[] * obj * System.Globalization.CultureInfo -> System.Reflection.FieldInfo
Public MustOverride Function BindToField (bindingAttr As BindingFlags, match As FieldInfo(), value As Object, culture As CultureInfo) As FieldInfo

参数

bindingAttr
BindingFlags

BindingFlags 值的按位组合。

match
FieldInfo[]

用于匹配的候选字段集。 例如,当 Binder 使用 InvokeMember 对象时,此参数将指定反射已确定为可能匹配项的字段集,通常是因为它们有正确的成员名称。 由 DefaultBinder 提供的默认实现会更改此数组的顺序。

value
Object

用于定位匹配字段的字段值。

culture
CultureInfo

一个 CultureInfo 实例,用于在强制类型的联编程序实现中控制数据类型强制。 如果 culturenull,则使用当前线程的 CultureInfo

返回

匹配的字段。

例外

对于默认的联编程序,bindingAttr 包括 SetField,并且 match 包含多个与 value 良好匹配且匹配程度相同的字段。 例如, value 包含实现 MyClassIMyClass 接口的对象,并 match 包含 类型的 MyClass 字段和 类型的 IMyClass字段。

对于默认联编程序,bindingAttr 包括 SetField,并且 match 不包含任何可接受 value 的字段。

对于默认联编程序,bindingAttr 包括 SetField,并且 matchnull 或一个空数组。

- 或 -

bindingAttr 包括 SetField,并且 valuenull

注解

如果 bindingAttr 不包含 BindingFlags.SetField,则提供 Type.DefaultBinder 的默认绑定器实现仅返回 的第 match一个元素。 未完成任何选择。

此方法控制 提供的 Type.InvokeMember绑定。

如果绑定器实现允许将字符串值强制转换为数值类型, culture 则需要 参数将表示 1000 的字符串转换为 Double 值,因为 1000 由不同区域性表示的方式不同。 默认联编程序不进行此类字符串强制。

适用于

另请参阅