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

◆ GetTypeTokenWorkerNoLock()

int System.Reflection.Emit.ModuleBuilder.GetTypeTokenWorkerNoLock ( Type type,
bool getGenericDefinition )
inlineprivate

Definition at line 844 of file ModuleBuilder.cs.

845 {
846 if (type == null)
847 {
848 throw new ArgumentNullException("type");
849 }
850 AssemblyBuilder.CheckContext(type);
851 if (type.IsByRef)
852 {
853 throw new ArgumentException(SR.Argument_CannotGetTypeTokenForByRef);
854 }
855 if ((type.IsGenericType && (!type.IsGenericTypeDefinition || !getGenericDefinition)) || type.IsGenericParameter || type.IsArray || type.IsPointer)
856 {
857 int length;
858 byte[] signature = SignatureHelper.GetTypeSigToken(this, type).InternalGetSignature(out length);
860 }
861 Module module = type.Module;
862 if (module.Equals(this))
863 {
864 TypeBuilder typeBuilder = null;
865 EnumBuilder enumBuilder = type as EnumBuilder;
866 typeBuilder = ((enumBuilder != null) ? enumBuilder.m_typeBuilder : (type as TypeBuilder));
867 if (typeBuilder != null)
868 {
869 return typeBuilder.TypeToken;
870 }
871 if (type is GenericTypeParameterBuilder genericTypeParameterBuilder)
872 {
873 return genericTypeParameterBuilder.MetadataToken;
874 }
875 return GetTypeRefNested(type, this, string.Empty);
876 }
878 string strRefedModuleFileName = string.Empty;
879 if (module.Assembly.Equals(Assembly))
880 {
881 if (moduleBuilder == null)
882 {
884 }
885 strRefedModuleFileName = moduleBuilder._moduleData._moduleName;
886 }
888 }
ModuleBuilder GetModuleBuilder(InternalModuleBuilder module)
static int GetTokenFromTypeSpec(QCallModule pModule, byte[] signature, int length)
int GetTypeRefNested(Type type, Module refedModule, string strRefedModuleFileName)
ModuleBuilder(AssemblyBuilder assemblyBuilder, InternalModuleBuilder internalModuleBuilder)

References System.Reflection.Emit.ModuleBuilder.ModuleBuilder(), System.SR.Argument_CannotGetTypeTokenForByRef, System.Reflection.Emit.AssemblyBuilder.CheckContext(), System.Reflection.Emit.ModuleBuilder.ContainingAssemblyBuilder, System.Reflection.Emit.AssemblyBuilder.GetModuleBuilder(), System.Reflection.Emit.ModuleBuilder.GetTokenFromTypeSpec(), System.Reflection.Emit.ModuleBuilder.GetTypeRefNested(), System.Reflection.Emit.SignatureHelper.GetTypeSigToken(), System.length, System.type, and System.Reflection.Emit.TypeBuilder.TypeToken.

Referenced by System.Reflection.Emit.ModuleBuilder.GetTypeTokenInternal().