public ICodeLambda Method(Type returnType, string name, Type[] argumentsTypes, MethodInfo parentMethodInfo) { var method = new TypeBuilderExtension(null, this.TypeBuilder) .CreateMethod(this.methodAccessor.MethodAttribute, returnType, name, argumentsTypes, null, methodAccessor.IsOverride); return(new MethodOperand(this, method.GetILGenerator(), method.GetBaseDefinition())); }
public ICodeLambda Constructor(IEnumerable <ParameterCriteriaMetadataInfo> parameterCriteriaMetadataInfos) { var constructorBuilder = new TypeBuilderExtension(this.ModuleLambda.ModuleBuilder, this.TypeBuilder) .CreateConstructor(this.methodAccessor.MethodAttribute, CallingConventions.HasThis, parameterCriteriaMetadataInfos); ResetAccessorAttributes(); return(new CodeLambda(this, constructorBuilder.GetILGenerator())); }
public ICodeLambda Constructor(params Type[] argumentsTypes) { var constructorBuilder = new TypeBuilderExtension(this.ModuleLambda.ModuleBuilder, this.TypeBuilder) .CreateConstructor(this.methodAccessor.MethodAttribute, CallingConventions.HasThis, argumentsTypes); ResetAccessorAttributes(); return(new CodeLambda(this, constructorBuilder.GetILGenerator())); }