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 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(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()); }