MethodImplAttributes.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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. // This Enum matchs the CorMethodImpl defined in CorHdr.h
  7. public enum MethodImplAttributes
  8. {
  9. // code impl mask
  10. CodeTypeMask = 0x0003, // Flags about code type.
  11. IL = 0x0000, // Method impl is IL.
  12. Native = 0x0001, // Method impl is native.
  13. OPTIL = 0x0002, // Method impl is OPTIL
  14. Runtime = 0x0003, // Method impl is provided by the runtime.
  15. // end code impl mask
  16. // managed mask
  17. ManagedMask = 0x0004, // Flags specifying whether the code is managed or unmanaged.
  18. Unmanaged = 0x0004, // Method impl is unmanaged, otherwise managed.
  19. Managed = 0x0000, // Method impl is managed.
  20. // end managed mask
  21. // implementation info and interop
  22. ForwardRef = 0x0010, // Indicates method is not defined; used primarily in merge scenarios.
  23. PreserveSig = 0x0080, // Indicates method sig is exported exactly as declared.
  24. InternalCall = 0x1000, // Internal Call...
  25. Synchronized = 0x0020, // Method is single threaded through the body.
  26. NoInlining = 0x0008, // Method may not be inlined.
  27. AggressiveInlining = 0x0100, // Method should be inlined if possible.
  28. NoOptimization = 0x0040, // Method may not be optimized.
  29. AggressiveOptimization = 0x0200, // Method may contain hot code and should be aggressively optimized.
  30. MaxMethodImplVal = 0xffff,
  31. }
  32. }