Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
EnumBuilder.cs
Go to the documentation of this file.
3
5
6public sealed class EnumBuilder : TypeInfo
7{
8 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)]
10
12
14
15 public override string Name => m_typeBuilder.Name;
16
17 public override Guid GUID => m_typeBuilder.GUID;
18
19 public override Module Module => m_typeBuilder.Module;
20
22
24
25 public override string? FullName => m_typeBuilder.FullName;
26
28
29 public override string? Namespace => m_typeBuilder.Namespace;
30
31 public override Type? BaseType => m_typeBuilder.BaseType;
32
33 public override bool IsByRefLike => false;
34
35 public override bool IsTypeDefinition => true;
36
37 public override bool IsSZArray => false;
38
39 public override bool IsConstructedGenericType => false;
40
42
44
46
47 public override bool IsAssignableFrom([NotNullWhen(true)] TypeInfo? typeInfo)
48 {
49 if (typeInfo == null)
50 {
51 return false;
52 }
53 return IsAssignableFrom(typeInfo.AsType());
54 }
55
56 public FieldBuilder DefineLiteral(string literalName, object? literalValue)
57 {
58 FieldBuilder fieldBuilder = m_typeBuilder.DefineField(literalName, this, FieldAttributes.Public | FieldAttributes.Static | FieldAttributes.Literal);
59 fieldBuilder.SetConstant(literalValue);
60 return fieldBuilder;
61 }
62
63 [return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)]
65 {
67 }
68
69 [return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)]
70 public Type? CreateType()
71 {
73 }
74
75 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)]
76 public override object? InvokeMember(string name, BindingFlags invokeAttr, Binder? binder, object? target, object?[]? args, ParameterModifier[]? modifiers, CultureInfo? culture, string[]? namedParameters)
77 {
78 return m_typeBuilder.InvokeMember(name, invokeAttr, binder, target, args, modifiers, culture, namedParameters);
79 }
80
81 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.NonPublicConstructors)]
82 protected override ConstructorInfo? GetConstructorImpl(BindingFlags bindingAttr, Binder? binder, CallingConventions callConvention, Type[] types, ParameterModifier[]? modifiers)
83 {
84 return m_typeBuilder.GetConstructor(bindingAttr, binder, callConvention, types, modifiers);
85 }
86
87 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.NonPublicConstructors)]
88 public override ConstructorInfo[] GetConstructors(BindingFlags bindingAttr)
89 {
90 return m_typeBuilder.GetConstructors(bindingAttr);
91 }
92
93 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods)]
94 protected override MethodInfo? GetMethodImpl(string name, BindingFlags bindingAttr, Binder? binder, CallingConventions callConvention, Type[]? types, ParameterModifier[]? modifiers)
95 {
96 if (types == null)
97 {
98 return m_typeBuilder.GetMethod(name, bindingAttr);
99 }
100 return m_typeBuilder.GetMethod(name, bindingAttr, binder, callConvention, types, modifiers);
101 }
102
103 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods)]
104 public override MethodInfo[] GetMethods(BindingFlags bindingAttr)
105 {
106 return m_typeBuilder.GetMethods(bindingAttr);
107 }
108
109 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.NonPublicFields)]
110 public override FieldInfo? GetField(string name, BindingFlags bindingAttr)
111 {
112 return m_typeBuilder.GetField(name, bindingAttr);
113 }
114
115 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.NonPublicFields)]
116 public override FieldInfo[] GetFields(BindingFlags bindingAttr)
117 {
118 return m_typeBuilder.GetFields(bindingAttr);
119 }
120
121 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.Interfaces)]
122 [return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.Interfaces)]
123 public override Type? GetInterface(string name, bool ignoreCase)
124 {
125 return m_typeBuilder.GetInterface(name, ignoreCase);
126 }
127
128 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.Interfaces)]
129 public override Type[] GetInterfaces()
130 {
132 }
133
134 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicEvents | DynamicallyAccessedMemberTypes.NonPublicEvents)]
135 public override EventInfo? GetEvent(string name, BindingFlags bindingAttr)
136 {
137 return m_typeBuilder.GetEvent(name, bindingAttr);
138 }
139
140 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicEvents)]
141 public override EventInfo[] GetEvents()
142 {
143 return m_typeBuilder.GetEvents();
144 }
145
146 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties | DynamicallyAccessedMemberTypes.NonPublicProperties)]
147 protected override PropertyInfo GetPropertyImpl(string name, BindingFlags bindingAttr, Binder? binder, Type? returnType, Type[]? types, ParameterModifier[]? modifiers)
148 {
150 }
151
152 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties | DynamicallyAccessedMemberTypes.NonPublicProperties)]
153 public override PropertyInfo[] GetProperties(BindingFlags bindingAttr)
154 {
155 return m_typeBuilder.GetProperties(bindingAttr);
156 }
157
158 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicNestedTypes | DynamicallyAccessedMemberTypes.NonPublicNestedTypes)]
159 public override Type[] GetNestedTypes(BindingFlags bindingAttr)
160 {
161 return m_typeBuilder.GetNestedTypes(bindingAttr);
162 }
163
164 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicNestedTypes | DynamicallyAccessedMemberTypes.NonPublicNestedTypes)]
165 public override Type? GetNestedType(string name, BindingFlags bindingAttr)
166 {
167 return m_typeBuilder.GetNestedType(name, bindingAttr);
168 }
169
170 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.NonPublicConstructors | DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods | DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.NonPublicFields | DynamicallyAccessedMemberTypes.PublicNestedTypes | DynamicallyAccessedMemberTypes.NonPublicNestedTypes | DynamicallyAccessedMemberTypes.PublicProperties | DynamicallyAccessedMemberTypes.NonPublicProperties | DynamicallyAccessedMemberTypes.PublicEvents | DynamicallyAccessedMemberTypes.NonPublicEvents)]
171 public override MemberInfo[] GetMember(string name, MemberTypes type, BindingFlags bindingAttr)
172 {
173 return m_typeBuilder.GetMember(name, type, bindingAttr);
174 }
175
176 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.NonPublicConstructors | DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods | DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.NonPublicFields | DynamicallyAccessedMemberTypes.PublicNestedTypes | DynamicallyAccessedMemberTypes.NonPublicNestedTypes | DynamicallyAccessedMemberTypes.PublicProperties | DynamicallyAccessedMemberTypes.NonPublicProperties | DynamicallyAccessedMemberTypes.PublicEvents | DynamicallyAccessedMemberTypes.NonPublicEvents)]
177 public override MemberInfo[] GetMembers(BindingFlags bindingAttr)
178 {
179 return m_typeBuilder.GetMembers(bindingAttr);
180 }
181
182 public override InterfaceMapping GetInterfaceMap([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods)] Type interfaceType)
183 {
184 return m_typeBuilder.GetInterfaceMap(interfaceType);
185 }
186
187 [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicEvents | DynamicallyAccessedMemberTypes.NonPublicEvents)]
188 public override EventInfo[] GetEvents(BindingFlags bindingAttr)
189 {
190 return m_typeBuilder.GetEvents(bindingAttr);
191 }
192
194 {
196 }
197
198 protected override bool IsArrayImpl()
199 {
200 return false;
201 }
202
203 protected override bool IsPrimitiveImpl()
204 {
205 return false;
206 }
207
208 protected override bool IsValueTypeImpl()
209 {
210 return true;
211 }
212
213 protected override bool IsByRefImpl()
214 {
215 return false;
216 }
217
218 protected override bool IsPointerImpl()
219 {
220 return false;
221 }
222
223 protected override bool IsCOMObjectImpl()
224 {
225 return false;
226 }
227
228 public override Type? GetElementType()
229 {
231 }
232
233 protected override bool HasElementTypeImpl()
234 {
236 }
237
238 public override Type GetEnumUnderlyingType()
239 {
241 }
242
243 public override object[] GetCustomAttributes(bool inherit)
244 {
245 return m_typeBuilder.GetCustomAttributes(inherit);
246 }
247
248 public override object[] GetCustomAttributes(Type attributeType, bool inherit)
249 {
250 return m_typeBuilder.GetCustomAttributes(attributeType, inherit);
251 }
252
253 public void SetCustomAttribute(ConstructorInfo con, byte[] binaryAttribute)
254 {
255 m_typeBuilder.SetCustomAttribute(con, binaryAttribute);
256 }
257
259 {
260 m_typeBuilder.SetCustomAttribute(customBuilder);
261 }
262
263 public override bool IsDefined(Type attributeType, bool inherit)
264 {
265 return m_typeBuilder.IsDefined(attributeType, inherit);
266 }
267
268 public override Type MakePointerType()
269 {
270 return SymbolType.FormCompoundType("*", this, 0);
271 }
272
273 public override Type MakeByRefType()
274 {
275 return SymbolType.FormCompoundType("&", this, 0);
276 }
277
278 public override Type MakeArrayType()
279 {
280 return SymbolType.FormCompoundType("[]", this, 0);
281 }
282
283 public override Type MakeArrayType(int rank)
284 {
285 string rankString = TypeInfo.GetRankString(rank);
286 return SymbolType.FormCompoundType(rankString, this, 0);
287 }
288
289 [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2064:UnrecognizedReflectionPattern", Justification = "Reflection.Emit is not subject to trimming")]
290 internal EnumBuilder(string name, Type underlyingType, TypeAttributes visibility, ModuleBuilder module)
291 {
292 if (((uint)visibility & 0xFFFFFFF8u) != 0)
293 {
295 }
296 m_typeBuilder = new TypeBuilder(name, visibility | TypeAttributes.Sealed, typeof(Enum), null, module, PackingSize.Unspecified, 0, null);
297 m_underlyingField = m_typeBuilder.DefineField("value__", underlyingType, FieldAttributes.Public | FieldAttributes.SpecialName | FieldAttributes.RTSpecialName);
298 }
299}
override RuntimeTypeHandle TypeHandle
override TypeAttributes GetAttributeFlagsImpl()
void SetCustomAttribute(CustomAttributeBuilder customBuilder)
override PropertyInfo[] GetProperties(BindingFlags bindingAttr)
override PropertyInfo GetPropertyImpl(string name, BindingFlags bindingAttr, Binder? binder, Type? returnType, Type[]? types, ParameterModifier[]? modifiers)
override? MethodInfo GetMethodImpl(string name, BindingFlags bindingAttr, Binder? binder, CallingConventions callConvention, Type[]? types, ParameterModifier[]? modifiers)
override? Type GetInterface(string name, bool ignoreCase)
override? EventInfo GetEvent(string name, BindingFlags bindingAttr)
override ConstructorInfo[] GetConstructors(BindingFlags bindingAttr)
override InterfaceMapping GetInterfaceMap([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods|DynamicallyAccessedMemberTypes.NonPublicMethods)] Type interfaceType)
override? Type GetNestedType(string name, BindingFlags bindingAttr)
override? object InvokeMember(string name, BindingFlags invokeAttr, Binder? binder, object? target, object?[]? args, ParameterModifier[]? modifiers, CultureInfo? culture, string[]? namedParameters)
override bool IsDefined(Type attributeType, bool inherit)
override? FieldInfo GetField(string name, BindingFlags bindingAttr)
FieldBuilder DefineLiteral(string literalName, object? literalValue)
override object[] GetCustomAttributes(bool inherit)
override bool IsAssignableFrom([NotNullWhen(true)] TypeInfo? typeInfo)
override FieldInfo[] GetFields(BindingFlags bindingAttr)
override object[] GetCustomAttributes(Type attributeType, bool inherit)
void SetCustomAttribute(ConstructorInfo con, byte[] binaryAttribute)
override MemberInfo[] GetMember(string name, MemberTypes type, BindingFlags bindingAttr)
override MemberInfo[] GetMembers(BindingFlags bindingAttr)
override EventInfo[] GetEvents(BindingFlags bindingAttr)
override Type[] GetNestedTypes(BindingFlags bindingAttr)
override Type MakeArrayType(int rank)
override? ConstructorInfo GetConstructorImpl(BindingFlags bindingAttr, Binder? binder, CallingConventions callConvention, Type[] types, ParameterModifier[]? modifiers)
EnumBuilder(string name, Type underlyingType, TypeAttributes visibility, ModuleBuilder module)
override MethodInfo[] GetMethods(BindingFlags bindingAttr)
override EventInfo[] GetEvents()
override? string AssemblyQualifiedName
void SetConstant(object? defaultValue)
static Type FormCompoundType(string format, Type baseType, int curIndex)
override? object InvokeMember(string name, BindingFlags invokeAttr, Binder? binder, object? target, object?[]? args, ParameterModifier[]? modifiers, CultureInfo? culture, string[]? namedParameters)
static FieldInfo GetField(Type type, FieldInfo field)
override bool IsDefined(Type attributeType, bool inherit)
static ConstructorInfo GetConstructor(Type type, ConstructorInfo constructor)
override MemberInfo[] GetMember(string name, MemberTypes type, BindingFlags bindingAttr)
override Type[] GetNestedTypes(BindingFlags bindingAttr)
override EventInfo[] GetEvents()
override? Type GetInterface(string name, bool ignoreCase)
override PropertyInfo[] GetProperties(BindingFlags bindingAttr)
override? Type GetNestedType(string name, BindingFlags bindingAttr)
override InterfaceMapping GetInterfaceMap([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods|DynamicallyAccessedMemberTypes.NonPublicMethods)] Type interfaceType)
override? EventInfo GetEvent(string name, BindingFlags bindingAttr)
override FieldInfo[] GetFields(BindingFlags bindingAttr)
override MethodInfo[] GetMethods(BindingFlags bindingAttr)
override object[] GetCustomAttributes(bool inherit)
static MethodInfo GetMethod(Type type, MethodInfo method)
void SetCustomAttribute(ConstructorInfo con, byte[] binaryAttribute)
override ConstructorInfo[] GetConstructors(BindingFlags bindingAttr)
override RuntimeTypeHandle TypeHandle
static int DefineField(QCallModule module, int tkParent, string name, byte[] signature, int sigLength, FieldAttributes attributes)
override MemberInfo[] GetMembers(BindingFlags bindingAttr)
virtual Type AsType()
Definition TypeInfo.cs:106
static string GetRankString(int rank)
Definition TypeInfo.cs:192
static string NotSupported_DynamicModule
Definition SR.cs:1672
static string Argument_ShouldOnlySetVisibilityFlags
Definition SR.cs:872
Definition SR.cs:7
TypeAttributes Attributes
Definition Type.cs:173
bool HasElementType
Definition Type.cs:143