// dnlib: See LICENSE.txt for more info using System; namespace dnlib.DotNet { /// /// Method attributes, see CorHdr.h/CorMethodAttr /// [Flags] public enum MethodAttributes : ushort { /// member access mask - Use this mask to retrieve accessibility information. MemberAccessMask = 0x0007, /// Member not referenceable. PrivateScope = 0x0000, /// Member not referenceable. CompilerControlled = PrivateScope, /// Accessible only by the parent type. Private = 0x0001, /// Accessible by sub-types only in this Assembly. FamANDAssem = 0x0002, /// Accessibly by anyone in the Assembly. Assembly = 0x0003, /// Accessible only by type and sub-types. Family = 0x0004, /// Accessibly by sub-types anywhere, plus anyone in assembly. FamORAssem = 0x0005, /// Accessibly by anyone who has visibility to this scope. Public = 0x0006, /// Defined on type, else per instance. Static = 0x0010, /// Method may not be overridden. Final = 0x0020, /// Method virtual. Virtual = 0x0040, /// Method hides by name+sig, else just by name. HideBySig = 0x0080, /// vtable layout mask - Use this mask to retrieve vtable attributes. VtableLayoutMask = 0x0100, /// The default. ReuseSlot = 0x0000, /// Method always gets a new slot in the vtable. NewSlot = 0x0100, /// Overridability is the same as the visibility. CheckAccessOnOverride = 0x0200, /// Method does not provide an implementation. Abstract = 0x0400, /// Method is special. Name describes how. SpecialName = 0x0800, /// Implementation is forwarded through pinvoke. PinvokeImpl = 0x2000, /// Managed method exported via thunk to unmanaged code. UnmanagedExport = 0x0008, /// Runtime should check name encoding. RTSpecialName = 0x1000, /// Method has security associate with it. HasSecurity = 0x4000, /// Method calls another method containing security code. RequireSecObject = 0x8000, } }