public FixedTypeKeyGenerator(string name, ModuleDefinition module, TValueGenerator pairGenerator, SystemObjectHelper systemObjectHelper, SystemTypeHelper typeHelper, ModuleImporter importer, SystemArrayHelper arrayHelper, double loadFactor, Action <ILProcessor, TInfo> loadValueFromInfoAction, Func <TInfo, TypeReference> ldTokenTypeReferenceFunc, Instruction[] loadDefaultReturnValue) { this.name = name; this.module = module; this.pairGenerator = pairGenerator; this.loadValueFromInfoAction = loadValueFromInfoAction; this.ldTokenTypeReferenceFunc = ldTokenTypeReferenceFunc; this.systemObjectHelper = systemObjectHelper; this.typeHelper = typeHelper; this.importer = importer; this.arrayHelper = arrayHelper; this.loadFactor = loadFactor; this.loadDefaultReturnValue = loadDefaultReturnValue; }
public UnionInterfaceFormatterAllConsequentImplementor(ModuleDefinition module, SystemObjectHelper objectHelper, InterfaceMessagePackFormatterHelper interfaceMessagePackFormatterHelper, SystemInvalidOperationExceptionHelper invalidOperationExceptionHelper, ModuleImporter importer, MessagePackSecurityHelper securityHelper, MessagePackSerializerOptionsHelper messagePackSerializerOptionsHelper, MessagePackWriterHelper writerHelper, MessagePackReaderHelper readerHelper, FormatterResolverExtensionHelper formatterResolverExtensionHelper, FixedTypeKeyInt32ValueHashtableGenerator generator) { this.module = module; this.objectHelper = objectHelper; this.interfaceMessagePackFormatterHelper = interfaceMessagePackFormatterHelper; this.invalidOperationExceptionHelper = invalidOperationExceptionHelper; this.importer = importer; this.securityHelper = securityHelper; this.messagePackSerializerOptionsHelper = messagePackSerializerOptionsHelper; this.writerHelper = writerHelper; this.readerHelper = readerHelper; this.formatterResolverExtensionHelper = formatterResolverExtensionHelper; this.generator = generator; }
private static void EnsureInternalAccessibility(ModuleDefinition targetModule, CollectedInfo[] collectedInfos, SystemObjectHelper systemObjectHelper) { var ignoresAccessChecksToAttributeGenerator = new IgnoresAccessChecksToAttributeGenerator(targetModule, systemObjectHelper); for (var i = 0; i < collectedInfos.Length; i++) { ref readonly var collectedInfo = ref collectedInfos[i];
public FixedTypeKeyInterfaceMessagePackFormatterValueHashtableGenerator(ModuleDefinition module, TypeKeyInterfaceMessagePackFormatterValuePairGenerator pairGenerator, SystemObjectHelper systemObjectHelper, SystemTypeHelper typeHelper, ModuleImporter importer, SystemArrayHelper arrayHelper, double loadFactor) { this.importer = importer; this.typeHelper = typeHelper; customFormatterConstructorImporter = new CustomFormatterConstructorImporter(module.TypeSystem.Void, importer); generator = new FixedTypeKeyGenerator <FormatterTableItemInfo, TypeKeyInterfaceMessagePackFormatterValuePairGenerator>( TypeName, module, pairGenerator, systemObjectHelper, typeHelper, importer, arrayHelper, loadFactor, LoadAppropriateValueFromFormatterInfo, info => info.SerializeTypeReference, new[] { Instruction.Create(OpCodes.Ldnull), }); }
public static MethodDefinition GenerateDefaultConstructor(ModuleDefinition module, SystemObjectHelper helper) { var ctor = new MethodDefinition( ".ctor", MethodAttributes.Public | MethodAttributes.HideBySig | MethodAttributes.SpecialName | MethodAttributes.RTSpecialName, module.TypeSystem.Void) { HasThis = true, Body = { InitLocals = true, }, }; var processor = ctor.Body.GetILProcessor(); processor.Append(Instruction.Create(OpCodes.Ldarg_0)); processor.Append(Instruction.Create(OpCodes.Call, helper.Ctor)); processor.Append(Instruction.Create(OpCodes.Ret)); return(ctor); }
public IgnoresAccessChecksToAttributeGenerator(ModuleDefinition module, SystemObjectHelper objectHelper) { this.objectHelper = objectHelper; this.module = module; }
public FixedTypeKeyUInt64ValueHashtableGenerator(ModuleDefinition module, TypeKeyUInt64ValuePairGenerator pairGenerator, SystemObjectHelper systemObjectHelper, SystemTypeHelper typeHelper, ModuleImporter importer, SystemArrayHelper arrayHelper, double loadFactor) { generator = new FixedTypeKeyGenerator <UnionSerializationInfo, TypeKeyUInt64ValuePairGenerator>( TypeName, module, pairGenerator, systemObjectHelper, typeHelper, importer, arrayHelper, loadFactor, (processor, unionInfo) => { var(instruction0, instruction1) = InstructionUtility.LdcU8(unionInfo.Value); processor.Append(instruction0); if (!(instruction1 is null)) { processor.Append(instruction1); } },
public FixedTypeKeyInt32ValueHashtableGenerator(ModuleDefinition module, TypeKeyInt32ValuePairGenerator pairGenerator, SystemObjectHelper systemObjectHelper, SystemTypeHelper typeHelper, ModuleImporter importer, SystemArrayHelper arrayHelper, double loadFactor) { generator = new FixedTypeKeyGenerator <UnionSerializationInfo, TypeKeyInt32ValuePairGenerator>( TypeName, module, pairGenerator, systemObjectHelper, typeHelper, importer, arrayHelper, loadFactor, (processor, unionInfo) => { processor.Append(InstructionUtility.LdcI4(unionInfo.Index)); }, unionInfo => unionInfo.Type, new[] { Instruction.Create(OpCodes.Ldc_I4_M1), }); }