2 Copyright (C) 2009 Jeroen Frijters
4 This software is provided 'as-is', without any express or implied
5 warranty. In no event will the authors be held liable for any damages
6 arising from the use of this software.
8 Permission is granted to anyone to use this software for any purpose,
9 including commercial applications, and to alter it and redistribute it
10 freely, subject to the following restrictions:
12 1. The origin of this software must not be misrepresented; you must not
13 claim that you wrote the original software. If you use this software
14 in a product, an acknowledgment in the product documentation would be
15 appreciated but is not required.
16 2. Altered source versions must be plainly marked as such, and must not be
17 misrepresented as being the original software.
18 3. This notice may not be removed or altered from any source distribution.
26 namespace IKVM.Reflection
29 public enum AssemblyNameFlags
34 EnableJITcompileOptimizer = 16384,
35 EnableJITcompileTracking = 32768,
39 public enum BindingFlags
48 FlattenHierarchy = 64,
52 public enum CallingConventions
62 public enum EventAttributes
71 public enum FieldAttributes
88 HasFieldMarshal = 4096,
95 public enum GenericParameterAttributes
101 ReferenceTypeConstraint = 4,
102 NotNullableValueTypeConstraint = 8,
103 DefaultConstructorConstraint = 16,
104 SpecialConstraintMask = 28,
107 public enum ImageFileMachine
116 public enum MemberTypes
126 All = Constructor | Event | Field | Method | Property | TypeInfo | NestedType
130 public enum MethodAttributes
132 MemberAccessMask = 0x0007,
133 PrivateScope = 0x0000,
135 FamANDAssem = 0x0002,
144 VtableLayoutMask = 0x0100,
147 CheckAccessOnOverride = 0x0200,
149 SpecialName = 0x0800,
151 PinvokeImpl = 0x2000,
152 UnmanagedExport = 0x0008,
154 RTSpecialName = 0x1000,
155 HasSecurity = 0x4000,
156 RequireSecObject = 0x8000,
158 ReservedMask = 0xd000,
162 public enum MethodImplAttributes
164 CodeTypeMask = 0x0003,
169 ManagedMask = 0x0004,
174 PreserveSig = 0x0080,
175 InternalCall = 0x1000,
176 Synchronized = 0x0020,
178 NoOptimization = 0x0040,
179 AggressiveInlining = 0x0100,
181 MaxMethodImplVal = 0xffff,
185 public enum ParameterAttributes
194 HasFieldMarshal = 8192,
197 ReservedMask = 61440,
201 public enum PortableExecutableKinds
203 NotAPortableExecutableImage = 0,
211 public enum ProcessorArchitecture
219 // if an item is added here, make sure to update AssemblyName.ProcessorArchitecture and Fusion.ParseAssemblyName as well
223 public enum PropertyAttributes
227 RTSpecialName = 1024,
232 public enum ResourceAttributes
239 public enum ResourceLocation
242 ContainedInAnotherAssembly = 2,
243 ContainedInManifestFile = 4,
247 public enum TypeAttributes
258 NestedFamANDAssem = 6,
260 NestedFamORAssem = 7,
261 SequentialLayout = 8,
264 ClassSemanticsMask = 32,
269 RTSpecialName = 2048,
272 WindowsRuntime = 16384,
273 UnicodeClass = 65536,
275 CustomFormatClass = 196608,
276 StringFormatMask = 196608,
277 HasSecurity = 262144,
278 ReservedMask = 264192,
279 BeforeFieldInit = 1048576,
280 CustomFormatMask = 12582912,
283 // IKVM.Reflection specific type
285 public enum DllCharacteristics
287 HighEntropyVA = 0x0020, // IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA
288 DynamicBase = 0x0040, // IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
289 NoSEH = 0x0400, // IMAGE_DLLCHARACTERISTICS_NO_SEH
290 NXCompat = 0x0100, // IMAGE_DLLCHARACTERISTICS_NX_COMPAT
291 AppContainer = 0x1000, // IMAGE_DLLCHARACTERISTICS_APPCONTAINER
292 TerminalServerAware = 0x8000, // IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE