IKVM11  11
Java SE 11 Virtual Machine for .NET
Loading...
Searching...
No Matches
UniverseOptions.cs
Go to the documentation of this file.
1/*
2 Copyright (C) 2009-2013 Jeroen Frijters
3
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.
7
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:
11
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.
19
20 Jeroen Frijters
21 jeroen@frijters.net
22
23*/
24using System;
25
26namespace IKVM.Reflection
27{
28
29 /*
30 * UniverseOptions:
31 *
32 * None
33 * Default behavior, most compatible with System.Reflection[.Emit]
34 *
35 * EnableFunctionPointers
36 * Normally function pointers in signatures are replaced by System.IntPtr
37 * (for compatibility with System.Reflection), when this option is enabled
38 * they are represented as first class types (Type.__IsFunctionPointer will
39 * return true for them).
40 *
41 * DisableFusion
42 * Don't use native Fusion API to resolve assembly names.
43 *
44 * DisablePseudoCustomAttributeRetrieval
45 * Set this option to disable the generaton of pseudo-custom attributes
46 * when querying custom attributes.
47 *
48 * DontProvideAutomaticDefaultConstructor
49 * Normally TypeBuilder, like System.Reflection.Emit, will provide a default
50 * constructor for types that meet the requirements. By enabling this
51 * option this behavior is disabled.
52 *
53 * MetadataOnly
54 * By default, when a module is read in, the stream is kept open to satisfy
55 * subsequent lazy loading. In MetadataOnly mode only the metadata is read in
56 * and after that the stream is closed immediately. Subsequent lazy loading
57 * attempts will fail with an InvalidOperationException.
58 * APIs that are not available is MetadataOnly mode are:
59 * - Module.ResolveString()
60 * - Module.GetSignerCertificate()
61 * - Module.GetManifestResourceStream()
62 * - Module.__ReadDataFromRVA()
63 * - MethodBase.GetMethodBody()
64 * - FieldInfo.__GetDataFromRVA()
65 *
66 * DeterministicOutput
67 * The generated output file will depend only on the input. In other words,
68 * the PE file header time stamp will be set to zero and the module version
69 * id will be based on a SHA1 of the contents, instead of a random guid.
70 * This option can not be used in combination with PDB file generation.
71 */
72
73 [Flags]
74 internal enum UniverseOptions
75 {
76
77 None = 0,
78 EnableFunctionPointers = 1,
79 DisableFusion = 2,
80 DisablePseudoCustomAttributeRetrieval = 4,
81 DontProvideAutomaticDefaultConstructor = 8,
82 MetadataOnly = 16,
83 ResolveMissingMembers = 32,
84 DisableWindowsRuntimeProjection = 64,
85 DecodeVersionInfoAttributeBlobs = 128,
86 DeterministicOutput = 256,
87 DisableDefaultAssembliesLookup = 512,
88
89 }
90
91}