Share via


BindingFlags Enumeration

[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]

Specifies flags that control binding and the way in which the search for members and types is conducted by reflection.

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

Namespace:  System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

Syntax

'Declaration
<SerializableAttribute> _
<FlagsAttribute> _
Public Enumeration BindingFlags
[SerializableAttribute]
[FlagsAttribute]
public enum BindingFlags
[SerializableAttribute]
[FlagsAttribute]
public enum class BindingFlags
[<SerializableAttribute>]
[<FlagsAttribute>]
type BindingFlags
public enum BindingFlags

Members

Member name Description
Default Specifies no binding flag.
IgnoreCase Specifies that the case of the member name should not be considered when binding.
DeclaredOnly Specifies that only members declared at the level of the supplied type's hierarchy should be considered. Inherited members are not considered.
Instance Specifies that instance members are to be included in the search.
Static Specifies that static members are to be included in the search.
Public Specifies that public members are to be included in the search.
NonPublic Specifies that non-public members are to be included in the search.
FlattenHierarchy Specifies that public and protected static members up the hierarchy should be returned. Private static members in inherited classes are not returned. Static members include fields, methods, events, and properties. Nested types are not returned.
InvokeMethod Specifies that a method is to be invoked. This must not be a constructor or a type initializer.
CreateInstance Specifies that Reflection should create an instance of the specified type. Calls the constructor that matches the given arguments. The supplied member name is ignored. If the type of lookup is not specified, (Instance | Public) will apply. It is not possible to call a type initializer.
GetField Specifies that the value of the specified field should be returned.
SetField Specifies that the value of the specified field should be set.
GetProperty Specifies that the value of the specified property should be returned.
SetProperty Specifies that the value of the specified property should be set. For COM properties, specifying this binding flag is equivalent to specifying PutDispProperty and PutRefDispProperty.
PutDispProperty Specifies that the PROPPUT member on a COM object should be invoked. PROPPUT specifies a property-setting function that uses a value. Use PutDispProperty if a property has both PROPPUT and PROPPUTREF and you need to distinguish which one is called.
PutRefDispProperty Specifies that the PROPPUTREF member on a COM object should be invoked. PROPPUTREF specifies a property-setting function that uses a reference instead of a value. Use PutRefDispProperty if a property has both PROPPUT and PROPPUTREF and you need to distinguish which one is called.
ExactBinding Specifies that types of the supplied arguments must exactly match the types of the corresponding formal parameters. Reflection throws an exception if the caller supplies a non-null Binder object, since that implies that the caller is supplying BindToXXX implementations that will pick the appropriate method.

Reflection models the accessibility rules of the common type system. For example, if the caller is in the same assembly, the caller does not need special permissions for internal members. Otherwise, the caller needs ReflectionPermission. This is consistent with lookup of members that are protected, private, and so on.

The general principle is that ChangeType should perform only widening coercions, which never lose data. An example of a widening coercion is coercing a value that is a 32-bit signed integer to a value that is a 64-bit signed integer. This is distinguished from a narrowing coercion, which may lose data. An example of a narrowing coercion is coercing a 64-bit signed integer to a 32-bit signed integer.

The default binder ignores this flag, while custom binders can implement the semantics of this flag.

SuppressChangeType Not implemented.
OptionalParamBinding Returns the set of members whose parameter count matches the number of supplied arguments. This binding flag is used for methods with parameters that have default values and methods with variable arguments (varargs). This flag should only be used with Type.InvokeMember.

Parameters with default values are used only in calls where trailing arguments are omitted. They must be the last arguments.

IgnoreReturn Used in COM interop to specify that the return value of the member can be ignored.

See Also

Reference

System.Reflection Namespace