信息
您所需的主题如下所示。但此主题未包含在此库中。

BindingFlags 枚举

2013/12/13

指定控制绑定和由反射执行的成员和类型搜索方法的标志。

此枚举具有一个 FlagsAttribute 属性,该属性允许对其成员值进行按位组合。

Namespace:  System.Reflection
程序集:  mscorlib(位于 mscorlib.dll 中)

[FlagsAttribute]
public enum BindingFlags

成员名称说明
CreateInstance反射应当创建指定类型的实例。此标志调用与给定参数匹配的构造函数。忽略提供的成员名。如果未指定查找类型,将应用 (Instance |Public)。调用类型初始值设定项是不可能的。
DeclaredOnly只应考虑在所提供类型的层次结构级别上声明的成员。不考虑继承成员。
Default没有绑定标志。
ExactBinding提供的参数的类型必须与对应形参的类型完全匹配。如果调用方提供一个非空 Binder 对象,则“反射”将引发异常,因为这意味着调用方正在提供的 BindToXXX 实现将选取适当的方法。默认联编程序忽略此标志,而自定义联编程序可以实现此标志的语义。
FlattenHierarchy应返回层次结构上的公共静态成员和受保护的静态成员。不返回继承类中的私有静态成员。静态成员包括字段、方法、事件和属性。不返回嵌套类型。
GetField应返回指定字段的值。
GetProperty应返回指定属性的值。
IgnoreCase绑定时不应考虑成员名的大小写。
IgnoreReturn在 COM 互操作中用于指定可以忽略成员的返回值。
Instance实例成员应包含在搜索中。
InvokeMethod要调用一个方法。它不能是构造函数或类型初始值设定项。
NonPublic搜索中应包含非公共成员。
OptionalParamBinding应返回其参数计数与提供的参数的数目匹配的成员集。此绑定标志用于所带参数具有默认值的方法和带变量参数 (varargs) 的方法。此标志应只与 Type.InvokeMember 方法一起使用。具有默认值的参数仅用在省略尾部参数的调用中。它们必须是最后的参数。
Public搜索中应包含公共成员。
PutDispProperty应调用 COM 对象的 PROPPUT 成员。PROPPUT 指定使用值的属性设置函数。如果属性同时具有 PROPPUTPROPPUTREF,而且需要区分调用哪一个,请使用 PutDispProperty
PutRefDispProperty应调用 COM 对象的 PROPPUTREF 成员。PROPPUTREF 指定使用引用而不是值的属性设置函数。如果属性同时具有 PROPPUTPROPPUTREF,而且需要区分调用哪一个,请使用 PutRefDispProperty
SetField应设置指定字段的值。
SetProperty应设置指定属性的值。对于 COM 属性,指定此绑定标志与指定 PutDispPropertyPutRefDispProperty 是等效的。
Static搜索中应包含静态成员。
SuppressChangeType未实现。

BindingFlags 枚举所指定的标志控制对 SystemSystem.Reflection 命名空间中的类所执行的许多操作的绑定。在反射的常规标题下,这些操作调用、创建、获取、设置以及查找成员和类型。例如,在 TypeActivatorMethodBase 的以下方法的重载中,使用了绑定标志:

InvokeMemberGetMethod 特别重要。

绑定标志可以按它们标识类型成员的方式来分类,如下表所示。

按可访问性标识

按绑定参数标识

按操作标识

DeclaredOnly

FlattenHierarchy

IgnoreCase

IgnoreReturn

Instance

NonPublic

Public

Static

ExactBinding

OptionalParamBinding

CreateInstance

GetField

SetField

GetProperty

SetProperty

InvokeMethod

PutDispProperty

PutRefDispProperty

说明注意:

您必须指定 InstanceStatic 以及 PublicNonPublic。否则,将不会返回任何成员。

下表列出了默认 Binder.ChangeType 方法执行的强制。该表特别应用于 ExactBinding 绑定标志。

源类型

目标类型

任何类型

它的基类型。

任何类型

它实现的接口。

Char

UInt16UInt32Int32UInt64Int64SingleDouble

Byte

CharUInt16Int16UInt32Int32UInt64Int64SingleDouble

SByte

Int16Int32Int64SingleDouble

UInt16

UInt32Int32UInt64Int64SingleDouble

Int16

Int32Int64SingleDouble

UInt32

UInt64Int64SingleDouble

Int32

Int64SingleDouble

UInt64

SingleDouble

Int64

SingleDouble

Single

Double

非引用

通过引用。

Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示: