1 // ==++== 2 // 3 // Copyright (c) Microsoft Corporation. All rights reserved. 4 // 5 // ==--== 6 //////////////////////////////////////////////////////////////////////////////// 7 //////////////////////////////////////////////////////////////////////////////// 8 // 9 // BindingFlags are a set of flags that control the binding and invocation process 10 // 11 // <OWNER>WESU</OWNER> 12 // in Reflection. There are two processes. The first is selection of a Member which 13 // is the binding phase. The second, is invocation. These flags control how this 14 // process works. 15 // 16 // <EMAIL>Author: darylo</EMAIL> 17 // Date: June 99 18 // 19 namespace System.Reflection { 20 21 using System; 22 [Serializable] 23 [Flags] 24 [System.Runtime.InteropServices.ComVisible(true)] 25 public enum BindingFlags 26 { 27 28 // NOTES: We have lookup masks defined in RuntimeType and Activator. If we 29 // change the lookup values then these masks may need to change also. 30 31 // a place holder for no flag specifed 32 Default = 0x00, 33 34 // These flags indicate what to search for when binding 35 IgnoreCase = 0x01, // Ignore the case of Names while searching 36 DeclaredOnly = 0x02, // Only look at the members declared on the Type 37 Instance = 0x04, // Include Instance members in search 38 Static = 0x08, // Include Static members in search 39 Public = 0x10, // Include Public members in search 40 NonPublic = 0x20, // Include Non-Public members in search 41 FlattenHierarchy = 0x40, // Rollup the statics into the class. 42 43 // These flags are used by InvokeMember to determine 44 // what type of member we are trying to Invoke. 45 // BindingAccess = 0xFF00; 46 InvokeMethod = 0x0100, 47 CreateInstance = 0x0200, 48 GetField = 0x0400, 49 SetField = 0x0800, 50 GetProperty = 0x1000, 51 SetProperty = 0x2000, 52 53 // These flags are also used by InvokeMember but they should only 54 // be used when calling InvokeMember on a COM object. 55 PutDispProperty = 0x4000, 56 PutRefDispProperty = 0x8000, 57 58 ExactBinding = 0x010000, // Bind with Exact Type matching, No Change type 59 SuppressChangeType = 0x020000, 60 61 // DefaultValueBinding will return the set of methods having ArgCount or 62 // more parameters. This is used for default values, etc. 63 OptionalParamBinding = 0x040000, 64 65 // These are a couple of misc attributes used 66 IgnoreReturn = 0x01000000, // This is used in COM Interop 67 } 68 } 69