/Mono.Cecil/TypeAttributes.cs

http://github.com/jbevain/cecil · C# · 63 lines · 36 code · 10 blank · 17 comment · 0 complexity · c4cd99791613d921a71206fc072c934c MD5 · raw file

  1. //
  2. // Author:
  3. // Jb Evain (jbevain@gmail.com)
  4. //
  5. // Copyright (c) 2008 - 2015 Jb Evain
  6. // Copyright (c) 2008 - 2011 Novell, Inc.
  7. //
  8. // Licensed under the MIT/X11 license.
  9. //
  10. using System;
  11. namespace Mono.Cecil {
  12. [Flags]
  13. public enum TypeAttributes : uint {
  14. // Visibility attributes
  15. VisibilityMask = 0x00000007, // Use this mask to retrieve visibility information
  16. NotPublic = 0x00000000, // Class has no public scope
  17. Public = 0x00000001, // Class has public scope
  18. NestedPublic = 0x00000002, // Class is nested with public visibility
  19. NestedPrivate = 0x00000003, // Class is nested with private visibility
  20. NestedFamily = 0x00000004, // Class is nested with family visibility
  21. NestedAssembly = 0x00000005, // Class is nested with assembly visibility
  22. NestedFamANDAssem = 0x00000006, // Class is nested with family and assembly visibility
  23. NestedFamORAssem = 0x00000007, // Class is nested with family or assembly visibility
  24. // Class layout attributes
  25. LayoutMask = 0x00000018, // Use this mask to retrieve class layout information
  26. AutoLayout = 0x00000000, // Class fields are auto-laid out
  27. SequentialLayout = 0x00000008, // Class fields are laid out sequentially
  28. ExplicitLayout = 0x00000010, // Layout is supplied explicitly
  29. // Class semantics attributes
  30. ClassSemanticMask = 0x00000020, // Use this mask to retrieve class semantics information
  31. Class = 0x00000000, // Type is a class
  32. Interface = 0x00000020, // Type is an interface
  33. // Special semantics in addition to class semantics
  34. Abstract = 0x00000080, // Class is abstract
  35. Sealed = 0x00000100, // Class cannot be extended
  36. SpecialName = 0x00000400, // Class name is special
  37. // Implementation attributes
  38. Import = 0x00001000, // Class/Interface is imported
  39. Serializable = 0x00002000, // Class is serializable
  40. WindowsRuntime = 0x00004000, // Windows Runtime type
  41. // String formatting attributes
  42. StringFormatMask = 0x00030000, // Use this mask to retrieve string information for native interop
  43. AnsiClass = 0x00000000, // LPSTR is interpreted as ANSI
  44. UnicodeClass = 0x00010000, // LPSTR is interpreted as Unicode
  45. AutoClass = 0x00020000, // LPSTR is interpreted automatically
  46. // Class initialization attributes
  47. BeforeFieldInit = 0x00100000, // Initialize the class before first static field access
  48. // Additional flags
  49. RTSpecialName = 0x00000800, // CLI provides 'special' behavior, depending upon the name of the Type
  50. HasSecurity = 0x00040000, // Type has security associate with it
  51. Forwarder = 0x00200000, // Exported type is a type forwarder
  52. }
  53. }