private Type GenerateProxyType(Type interfaceType, Type classType) { var context = new GeneratorTypeContext { ModuleBuilder = _moduleBuilder, ClassType = classType, InterfaceType = interfaceType }; DefineTypeOperator.Generate(context); DefineFieldsOperator.Generate(context); ImplementConstructorsOperator.Generate(context); ImplementMethodsOperator.Generate(context); var proxyType = context.TypeBuilder.CreateTypeInfo(); HandleCollection.AddHandles(proxyType.MetadataToken, context.MethodHandles); return(proxyType); }