MethodAttributes.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // Licensed to the .NET Foundation under one or more agreements.
  2. // The .NET Foundation licenses this file to you under the MIT license.
  3. // See the LICENSE file in the project root for more information.
  4. namespace System.Reflection
  5. {
  6. [Flags]
  7. public enum MethodAttributes
  8. {
  9. // NOTE: This Enum matchs the CorMethodAttr defined in CorHdr.h
  10. // member access mask - Use this mask to retrieve accessibility information.
  11. MemberAccessMask = 0x0007,
  12. PrivateScope = 0x0000, // Member not referenceable.
  13. Private = 0x0001, // Accessible only by the parent type.
  14. FamANDAssem = 0x0002, // Accessible by sub-types only in this Assembly.
  15. Assembly = 0x0003, // Accessibly by anyone in the Assembly.
  16. Family = 0x0004, // Accessible only by type and sub-types.
  17. FamORAssem = 0x0005, // Accessibly by sub-types anywhere, plus anyone in assembly.
  18. Public = 0x0006, // Accessibly by anyone who has visibility to this scope.
  19. // end member access mask
  20. // method contract attributes.
  21. Static = 0x0010, // Defined on type, else per instance.
  22. Final = 0x0020, // Method may not be overridden.
  23. Virtual = 0x0040, // Method virtual.
  24. HideBySig = 0x0080, // Method hides by name+sig, else just by name.
  25. CheckAccessOnOverride = 0x0200,
  26. // vtable layout mask - Use this mask to retrieve vtable attributes.
  27. VtableLayoutMask = 0x0100,
  28. ReuseSlot = 0x0000, // The default.
  29. NewSlot = 0x0100, // Method always gets a new slot in the vtable.
  30. // end vtable layout mask
  31. // method implementation attributes.
  32. Abstract = 0x0400, // Method does not provide an implementation.
  33. SpecialName = 0x0800, // Method is special. Name describes how.
  34. // interop attributes
  35. PinvokeImpl = 0x2000, // Implementation is forwarded through pinvoke.
  36. UnmanagedExport = 0x0008, // Managed method exported via thunk to unmanaged code.
  37. RTSpecialName = 0x1000, // Runtime should check name encoding.
  38. HasSecurity = 0x4000, // Method has security associate with it.
  39. RequireSecObject = 0x8000, // Method calls another method containing security code.
  40. ReservedMask = 0xd000,
  41. }
  42. }