Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ResolveField() [2/3]

unsafe override FieldInfo System.Reflection.RuntimeModule.ResolveField ( int metadataToken,
Type[] genericTypeArguments,
Type[] genericMethodArguments )
inlineinherited

Definition at line 216 of file RuntimeModule.cs.

217 {
218 try
219 {
222 {
223 throw new ArgumentOutOfRangeException("metadataToken", SR.Format(SR.Argument_InvalidToken, metadataToken2, this));
224 }
225 RuntimeTypeHandle[] typeInstantiationContext = null;
226 RuntimeTypeHandle[] methodInstantiationContext = null;
227 if (genericTypeArguments != null && genericTypeArguments.Length != 0)
228 {
230 }
231 if (genericMethodArguments != null && genericMethodArguments.Length != 0)
232 {
234 }
236 if (!metadataToken2.IsFieldDef)
237 {
238 if (!metadataToken2.IsMemberRef)
239 {
240 throw new ArgumentException(SR.Format(SR.Argument_ResolveField, metadataToken2, this), "metadataToken");
241 }
243 {
244 throw new ArgumentException(SR.Format(SR.Argument_ResolveField, metadataToken2, this), "metadataToken");
245 }
246 }
247 IRuntimeFieldInfo runtimeFieldInfo = moduleHandle.ResolveFieldHandle(metadataToken, typeInstantiationContext, methodInstantiationContext).GetRuntimeFieldInfo();
248 RuntimeType runtimeType = RuntimeFieldHandle.GetApproxDeclaringType(runtimeFieldInfo.Value);
249 if (runtimeType.IsGenericType || runtimeType.IsArray)
250 {
251 int parentToken = ModuleHandle.GetMetadataImport(this).GetParentToken(metadataToken);
253 }
255 }
256 catch (MissingFieldException)
257 {
259 }
260 catch (BadImageFormatException innerException)
261 {
262 throw new ArgumentException(SR.Argument_BadImageFormatExceptionResolve, innerException);
263 }
264 }
ModuleHandle ModuleHandle
Definition Module.cs:64
FieldInfo ResolveLiteralField(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
override Type ResolveType(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
static RuntimeTypeHandle[] ConvertToTypeHandleArray(Type[] genericArguments)
static FieldInfo GetFieldInfo(IRuntimeFieldInfo fieldHandle)
static MetadataImport GetMetadataImport(RuntimeModule module)
ConstArray GetMemberRefProps(int memberTokenRef)

References System.SR.Argument_BadImageFormatExceptionResolve, System.SR.Argument_InvalidToken, System.SR.Argument_ResolveField, System.Reflection.RuntimeModule.ConvertToTypeHandleArray(), System.SR.Format(), System.RuntimeFieldHandle.GetApproxDeclaringType(), System.RuntimeType.GetFieldInfo(), System.Reflection.MetadataImport.GetMemberRefProps(), System.ModuleHandle.GetMetadataImport(), System.Reflection.MetadataImport.IsValidToken(), System.Reflection.RuntimeModule.MetadataToken, System.Reflection.Module.ModuleHandle, System.Reflection.RuntimeModule.ResolveLiteralField(), System.Reflection.RuntimeModule.ResolveType(), System.Reflection.RuntimeModule.RuntimeType, and System.Reflection.ConstArray.Signature.

Referenced by System.Reflection.Emit.ModuleBuilder.ResolveField(), and System.Reflection.RuntimeModule.ResolveMember().