52 while (typeName[--num] ==
'\\')
227 if (parameters ==
null)
234 for (
int i = 0; i < parameters.Length; i++)
236 if (parameters[i] ==
null)
275 if (
method.IsGenericMethod)
277 if (!
method.IsGenericMethodDefinition)
289 if (
method.DeclaringType.IsGenericType)
306 if (!
method.DeclaringType.IsGenericType)
330 [
UnconditionalSuppressMessage(
"ReflectionAnalysis",
"IL2026:RequiresUnreferencedCode", Justification =
"Module.ResolveMethod is marked as RequiresUnreferencedCode because it relies on tokens which are not guaranteed to be stable across trimming. So if somebody hardcodes a token it could break. The usage here is not like that as all these tokens come from existing metadata loaded from some IL and so trimming has no effect (the tokens are read AFTER trimming occured).")]
522 text =
text.Replace(
"\\\\",
"\\").Replace(
"\\[",
"[").Replace(
"\\*",
"*")
523 .Replace(
"\\&",
"&");
535 for (
int i = 0; i <
count; i++)
759 if (name.Length == 0)
789 _moduleData._hasGlobalBeenCreated =
true;
867 if (typeBuilder !=
null)
908 if (
method.Module.Equals(
this))
912 if (
method.DeclaringType ==
null)
940 for (
int i = 0; i < parameters.Length; i++)
979 if (
method.IsGenericMethod)
1075 if (
field.DeclaringType !=
null &&
field.DeclaringType.IsGenericType)
1086 if (
field.DeclaringType ==
null)
1095 if (
field.DeclaringType ==
null)
1099 if (
field.DeclaringType !=
null &&
field.DeclaringType.IsGenericType)
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
void Add(TKey key, TValue value)
static void KeepAlive(object? obj)
readonly List< ModuleBuilder > _moduleBuilderList
AssemblyBuilderData _assemblyData
static void CheckContext(params Type[][] typess)
ModuleBuilder GetModuleBuilder(InternalModuleBuilder module)
override bool Equals(object obj)
override int GetHashCode()
readonly string _moduleName
readonly TypeBuilder _globalTypeBuilder
bool _hasGlobalBeenCreated
override string FullyQualifiedName
override bool IsDefined(Type attributeType, bool inherit)
static int GetTokenFromTypeSpec(QCallModule pModule, byte[] signature, int length)
Type GetTypeNoLock(string className, bool throwOnError, bool ignoreCase)
override int MDStreamVersion
void CheckTypeNameConflict(string strTypeName, Type enclosingType)
TypeBuilder DefineTypeNoLock(string name, TypeAttributes attr, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type parent, Type[] interfaces, PackingSize packingSize, int typesize)
int GetConstructorToken(ConstructorInfo con)
int GetMethodTokenInternal(MethodBase method, Type[] optionalParameterTypes, bool useMethodDef)
int GetTypeRefNested(Type type, Module refedModule, string strRefedModuleFileName)
override void GetPEKind(out PortableExecutableKinds peKind, out ImageFileMachine machine)
override FieldInfo[] GetFields(BindingFlags bindingFlags)
FieldBuilder DefineInitializedDataNoLock(string name, byte[] data, FieldAttributes attributes)
void CreateGlobalFunctionsNoLock()
AssemblyBuilder ContainingAssemblyBuilder
int GetFieldTokenNoLock(FieldInfo field)
FieldBuilder DefineUninitializedDataNoLock(string name, int size, FieldAttributes attributes)
void SetCustomAttribute(ConstructorInfo con, byte[] binaryAttribute)
static int GetMemberRefOfFieldInfo(QCallModule module, int tkType, QCallTypeHandle declaringType, int tkField)
readonly AssemblyBuilder _assemblyBuilder
int GetTypeTokenInternal(Type type, bool getGenericDefinition)
override? FieldInfo GetField(string name, BindingFlags bindingAttr)
static MethodBase GetGenericMethodBaseDefinition(MethodBase methodBase)
TypeBuilder DefineType(string name, TypeAttributes attr, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type? parent, int typesize)
TypeBuilder DefineType(string name)
override? Type GetType(string className)
int GetArrayMethodTokenNoLock(Type arrayClass, string methodName, CallingConventions callingConvention, Type returnType, Type[] parameterTypes)
static int GetArrayMethodToken(QCallModule module, int tkTypeSpec, string methodName, byte[] signature, int sigLength)
static int GetMemberRef(QCallModule module, QCallModule refedModule, int tr, int defToken)
int GetMemberRefToken(MethodBase method, Type[] optionalParameterTypes)
FieldBuilder DefineInitializedData(string name, byte[] data, FieldAttributes attributes)
MethodBuilder DefineGlobalMethod(string name, MethodAttributes attributes, CallingConventions callingConvention, Type? returnType, Type[]? parameterTypes)
SignatureHelper GetMemberRefSignature(CallingConventions call, Type returnType, Type[] parameterTypes, Type[][] requiredCustomModifiers, Type[][] optionalCustomModifiers, Type[] optionalParameterTypes, int cGenericParameters)
static int GetStringConstant(QCallModule module, string str, int length)
TypeBuilder DefineType(string name, TypeAttributes attr, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type? parent, Type[]? interfaces)
int GetTypeTokenWorkerNoLock(Type type, bool getGenericDefinition)
override? MethodInfo GetMethodImpl(string name, BindingFlags bindingAttr, Binder? binder, CallingConventions callConvention, Type[]? types, ParameterModifier[]? modifiers)
MethodBuilder DefinePInvokeMethod(string name, string dllName, string entryName, MethodAttributes attributes, CallingConventions callingConvention, Type? returnType, Type[]? parameterTypes, CallingConvention nativeCallConv, CharSet nativeCharSet)
void Init(string strModuleName)
override object[] GetCustomAttributes(bool inherit)
int GetMemberRefOfMethodInfo(int tr, RuntimeConstructorInfo method)
TypeBuilder DefineType(string name, TypeAttributes attr, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type? parent)
override Type[] GetTypes()
FieldBuilder DefineUninitializedData(string name, int size, FieldAttributes attributes)
MethodBuilder DefineGlobalMethod(string name, MethodAttributes attributes, CallingConventions callingConvention, Type? returnType, Type[]? requiredReturnTypeCustomModifiers, Type[]? optionalReturnTypeCustomModifiers, Type[]? parameterTypes, Type[][]? requiredParameterTypeCustomModifiers, Type[][]? optionalParameterTypeCustomModifiers)
override MethodInfo[] GetMethods(BindingFlags bindingFlags)
override int GetHashCode()
static int GetMemberRefOfMethodInfo(QCallModule module, int tr, RuntimeMethodHandleInternal method)
override ModuleHandle GetModuleHandleImpl()
InternalModuleBuilder InternalModule
int GetMethodTokenNoLock(MethodInfo method, bool getGenericTypeDefinition)
int GetMemberRefFromSignature(int tr, string methodName, byte[] signature, int length)
int InternalGetConstructorToken(ConstructorInfo con, bool usingRef)
ModuleBuilderData _moduleData
int GetTokenFromTypeSpec(byte[] signature, int length)
MethodBuilder DefineGlobalMethod(string name, MethodAttributes attributes, Type? returnType, Type[]? parameterTypes)
EnumBuilder DefineEnum(string name, TypeAttributes visibility, Type underlyingType)
int GetTypeTokenInternal(Type type)
override string ResolveString(int metadataToken)
static int GetTypeRef(QCallModule module, string strFullName, QCallModule refedModule, string strRefedModuleFileName, int tkResolution)
InternalModuleBuilder _internalModuleBuilder
int GetMemberRefOfMethodInfo(int tr, RuntimeMethodInfo method)
override? MethodBase ResolveMethod(int metadataToken, Type[]? genericTypeArguments, Type[]? genericMethodArguments)
ModuleBuilder(AssemblyBuilder assemblyBuilder, InternalModuleBuilder internalModuleBuilder)
MethodBuilder DefineGlobalMethodNoLock(string name, MethodAttributes attributes, CallingConventions callingConvention, Type returnType, Type[] requiredReturnTypeCustomModifiers, Type[] optionalReturnTypeCustomModifiers, Type[] parameterTypes, Type[][] requiredParameterTypeCustomModifiers, Type[][] optionalParameterTypeCustomModifiers)
int GetMemberRefOfFieldInfo(int tkType, RuntimeTypeHandle declaringType, RuntimeFieldInfo runtimeField)
static Type GetType(string strFormat, Type baseType)
static RuntimeModule GetRuntimeModuleFromModule(Module m)
override byte[] ResolveSignature(int metadataToken)
int GetArrayMethodToken(Type arrayClass, string methodName, CallingConventions callingConvention, Type returnType, Type[] parameterTypes)
void AddType(string name, Type type)
int GetFieldToken(FieldInfo field)
int GetStringConstant(string str)
Dictionary< string, Type > _typeBuilderDict
void CreateGlobalFunctions()
override Type ResolveType(int metadataToken, Type[]? genericTypeArguments, Type[]? genericMethodArguments)
void SetCustomAttribute(CustomAttributeBuilder customBuilder)
int GetMemberRef(Module refedModule, int tr, int defToken)
static string UnmangleTypeName(string typeName)
MethodInfo GetArrayMethod(Type arrayClass, string methodName, CallingConventions callingConvention, Type? returnType, Type[]? parameterTypes)
int GetTypeToken(Type type)
override bool IsResource()
TypeBuilder DefineType(string name, TypeAttributes attr)
EnumBuilder DefineEnumNoLock(string name, TypeAttributes visibility, Type underlyingType)
static int GetMemberRefFromSignature(QCallModule module, int tr, string methodName, byte[] signature, int length)
TypeBuilder DefineTypeNoLock(string name, TypeAttributes attr, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type parent, PackingSize packsize)
TypeBuilder DefineType(string name, TypeAttributes attr, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type? parent, PackingSize packingSize, int typesize)
override? Type GetType(string className, bool throwOnError, bool ignoreCase)
int GetMethodToken(MethodInfo method)
virtual Type FindTypeBuilderWithName(string strTypeName, bool ignoreCase)
override? FieldInfo ResolveField(int metadataToken, Type[]? genericTypeArguments, Type[]? genericMethodArguments)
int GetSignatureToken(SignatureHelper sigHelper)
TypeBuilder DefineType(string name, TypeAttributes attr, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type? parent, PackingSize packsize)
override? MemberInfo ResolveMember(int metadataToken, Type[]? genericTypeArguments, Type[]? genericMethodArguments)
override Guid ModuleVersionId
override int MetadataToken
MethodBuilder DefinePInvokeMethod(string name, string dllName, MethodAttributes attributes, CallingConventions callingConvention, Type? returnType, Type[]? parameterTypes, CallingConvention nativeCallConv, CharSet nativeCharSet)
static void SetFieldRVAContent(QCallModule module, int fdToken, byte[] data, int length)
SignatureHelper GetMemberRefSignature(MethodBase method, int cGenericParameters)
override bool Equals(object? obj)
override string ScopeName
override object[] GetCustomAttributes(Type attributeType, bool inherit)
override? Type GetType(string className, bool ignoreCase)
override IList< CustomAttributeData > GetCustomAttributesData()
static SignatureHelper GetTypeSigToken(Module module, Type type)
static SignatureHelper GetFieldSigHelper(Module? mod)
static SignatureHelper GetMethodSigHelper(Module? mod, Type? returnType, Type[]? parameterTypes)
static SignatureHelper GetMethodSpecSigHelper(Module scope, Type[] inst)
static Type FormCompoundType(string format, Type baseType, int curIndex)
static int DefineMethod(QCallModule module, int tkParent, string name, byte[] signature, int sigLength, MethodAttributes attributes)
static int GetTokenFromSig(QCallModule module, byte[] signature, int sigLength)
FieldBuilder DefineInitializedData(string name, byte[] data, FieldAttributes attributes)
override Type UnderlyingSystemType
FieldBuilder DefineUninitializedData(string name, int size, FieldAttributes attributes)
static void DefineCustomAttribute(QCallModule module, int tkAssociate, int tkConstructor, byte[] attr, int attrLength)
static int DefineMethodSpec(QCallModule module, int tkParent, byte[] signature, int sigLength)
MethodBuilder DefinePInvokeMethod(string name, string dllName, MethodAttributes attributes, CallingConventions callingConvention, Type? returnType, Type[]? parameterTypes, CallingConvention nativeCallConv, CharSet nativeCharSet)
ModuleHandle ModuleHandle
virtual Type[] GetRequiredCustomModifiers()
virtual Type[] GetOptionalCustomModifiers()
virtual Type ParameterType
unsafe override MethodBase ResolveMethod(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
static bool IsResource(RuntimeModule module)
override string ScopeName
static void GetType(QCallModule module, string className, bool throwOnError, bool ignoreCase, ObjectHandleOnStack type, ObjectHandleOnStack keepAlive)
override FieldInfo[] GetFields(BindingFlags bindingFlags)
unsafe override FieldInfo ResolveField(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
override IList< CustomAttributeData > GetCustomAttributesData()
override string ResolveString(int metadataToken)
override object[] GetCustomAttributes(bool inherit)
override int MetadataToken
unsafe override MemberInfo ResolveMember(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
override MethodInfo[] GetMethods(BindingFlags bindingFlags)
MethodInfo GetMethodInternal(string name, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers)
override Type ResolveType(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
override FieldInfo GetField(string name, BindingFlags bindingAttr)
override void GetPEKind(out PortableExecutableKinds peKind, out ImageFileMachine machine)
override Guid ModuleVersionId
override int MDStreamVersion
override byte[] ResolveSignature(int metadataToken)
override bool IsDefined(Type attributeType, bool inherit)
static string Argument_GlobalFunctionHasToBeStatic
static string Argument_CannotGetTypeTokenForByRef
static string InvalidOperation_NotAVarArgCallingConvention
static string Argument_InvalidConstructorInfo
static string InvalidOperation_CannotImportGlobalFromDifferentModule
static string InvalidOperation_NotADebugModule
static string Argument_HasToBeArrayClass
static string Argument_EmptyName
static string Argument_DuplicateTypeName
static string InvalidOperation_GlobalsHaveBeenCreated
DynamicallyAccessedMemberTypes