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
238 public enum ResourceLocation
241 ContainedInAnotherAssembly = 2,
242 ContainedInManifestFile = 4,
246 public enum TypeAttributes
257 NestedFamANDAssem = 6,
259 NestedFamORAssem = 7,
260 SequentialLayout = 8,
263 ClassSemanticsMask = 32,
268 RTSpecialName = 2048,
271 WindowsRuntime = 16384,
272 UnicodeClass = 65536,
274 CustomFormatClass = 196608,
275 StringFormatMask = 196608,
276 HasSecurity = 262144,
277 ReservedMask = 264192,
278 BeforeFieldInit = 1048576,
279 CustomFormatMask = 12582912,
282 // IKVM.Reflection specific type
284 public enum DllCharacteristics
286 HighEntropyVA = 0x0020, // IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA
287 DynamicBase = 0x0040, // IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
288 NoSEH = 0x0400, // IMAGE_DLLCHARACTERISTICS_NO_SEH
289 NXCompat = 0x0100, // IMAGE_DLLCHARACTERISTICS_NX_COMPAT
290 AppContainer = 0x1000, // IMAGE_DLLCHARACTERISTICS_APPCONTAINER
291 TerminalServerAware = 0x8000, // IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE