What is BindingFlags.Default equivalent?

I remember reading somewhere, using GetMethod reflection and overload, which takes the BindingFlags , that BindingFlags.Default equivalent to BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance or something else. Can someone tell me which values ​​are specifically included in BindingFlags.Default ? The MSDN documentation does not say, and I can not find the answer anywhere.

+6
source share
2 answers

If you go to the definition on it, you will see:

 public enum BindingFlags { // Summary: // Specifies no binding flag. Default = 0, // // Summary: // Specifies that the case of the member name should not be considered when // binding. IgnoreCase = 1, // // Summary: // Specifies that only members declared at the level of the supplied type's // hierarchy should be considered. Inherited members are not considered. DeclaredOnly = 2, // // Summary: // Specifies that instance members are to be included in the search. Instance = 4, // // Summary: // Specifies that static members are to be included in the search. Static = 8, // // Summary: // Specifies that public members are to be included in the search. Public = 16, // // Summary: // Specifies that non-public members are to be included in the search. NonPublic = 32, // // Summary: // 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. FlattenHierarchy = 64, // // Summary: // Specifies that a method is to be invoked. This must not be a constructor // or a type initializer. InvokeMethod = 256, // // Summary: // 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. CreateInstance = 512, // // Summary: // Specifies that the value of the specified field should be returned. GetField = 1024, // // Summary: // Specifies that the value of the specified field should be set. SetField = 2048, // // Summary: // Specifies that the value of the specified property should be returned. GetProperty = 4096, // // Summary: // 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. SetProperty = 8192, // // Summary: // 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. PutDispProperty = 16384, // // Summary: // 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. PutRefDispProperty = 32768, // // Summary: // 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. ExactBinding = 65536, // // Summary: // Not implemented. SuppressChangeType = 131072, // // Summary: // 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 System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]). OptionalParamBinding = 262144, // // Summary: // Used in COM interop to specify that the return value of the member can be // ignored. IgnoreReturn = 16777216, } 

So it looks like BindingFlags.Default != BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance BindingFlags.Default != BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance BindingFlags.Default != BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance .

+6
source

BindingFlags.Default does not specify binding flags. The choice of user for the listing depends on the user of the listing. System.Type.GetMethods () returns all public methods.

+1
source

All Articles