public AssignOperand(ITypeLambda typeLambda, ILGenerator ilGenerator, Operand left, Operand right) : base(typeLambda, ilGenerator) { this.typeLambda = typeLambda; this.left = left; this.right = right; }
public AssignValueOperand(ITypeLambda typeLambda, ILGenerator ilGenerator, Operand left, object right) : base(typeLambda, ilGenerator) { this.typeLambda = typeLambda; this.left = left; this.right = right; }
static DynamicObject() { assembly = new AssemblyLambda(); { module = assembly.Assembly(); { type = module.Module(Guid.NewGuid().ToString("N")); } } }
//public ICodeLambda New() //{ // return this.New(Operand.Empty); //} public ICodeLambda New(ITypeLambda typeLambda) { if (typeLambda.TypeAccessor.IsStatic) { throw new DynamicProxyException(ExceptionRS.정적_타입의_ITypeLambda는_개체를_생성할_수_없습니다); } else { // 파라메터를 스택에 로드 //foreach (var parameter in constructorParameterOperand) //{ // parameter.ReadEmit(this); //} this.IL.Emit(OpCodes.Newobj, this.TypeLambda.TypeBuilder.DeclaringType); } return(this); }
public TypeAccessor(ITypeLambda typeLambda) { this.typeLambda = typeLambda; }
public TypeUnitLambda(IModuleLambda moduleLambda, ITypeLambda parentTypeLambda) : base(moduleLambda) { this.ParentTypeLambda = parentTypeLambda; }
public CodeLambda(ITypeLambda typeLambda, ILGenerator ilGenreator) { this.TypeLambda = typeLambda; this.IL = ilGenreator; }
public PropertyLambda(ITypeLambda typeLambda, PropertyBuilder propertyBuilder) { this.TypeLambda = typeLambda; this.propertyBuilder = propertyBuilder; }
public AccessorInvocation(ITypeLambda typeLambda, params IAccessorLambda[] accessors) : this(typeLambda, accessors.AsEnumerable()) { }
public Operand(ITypeLambda typeLambda, ILGenerator ilGenreator) : base(typeLambda, ilGenreator) { }
public AccessorInvocation(ITypeLambda typeLambda, IEnumerable<IAccessorLambda> accessors) { this.typeLambda = typeLambda; this.accessors = accessors; }
public FieldAccessor(ITypeLambda typeLambda) { this.typeLambda = typeLambda; }
public MethodOperand(ITypeLambda typeLambda, ILGenerator ilGenerator, MethodInfo methodInfo) : base(typeLambda, ilGenerator) { this.typeLambda = typeLambda; this.methodInfo = methodInfo; }
public MethodOperand(ITypeLambda typeLambda, ILGenerator ilGenerator, MethodInfo methodInfo, params Operand[] parameterOperands) : this(typeLambda, ilGenerator, methodInfo) { this.parameterOperands = parameterOperands; }
public MethodAccessor(ITypeLambda typeLambda) { this.typeLambda = typeLambda; }
//public ICodeLambda New() //{ // return this.New(Operand.Empty); //} public ICodeLambda New(ITypeLambda typeLambda) { if (typeLambda.TypeAccessor.IsStatic) { throw new DynamicProxyException(ExceptionRS.정적_타입의_ITypeLambda는_개체를_생성할_수_없습니다); } else { // 파라메터를 스택에 로드 //foreach (var parameter in constructorParameterOperand) //{ // parameter.ReadEmit(this); //} this.IL.Emit(OpCodes.Newobj, this.TypeLambda.TypeBuilder.DeclaringType); } return this; }
public FieldOperand(ITypeLambda typeLambda, ILGenerator ilGenerator, ICriteriaMetadataInfo criteriaMetadataInfo) : base(typeLambda, ilGenerator) { this.typeLambda = typeLambda; this.criteriaMetadataInfo = criteriaMetadataInfo; }
public AccessorInvocation(ITypeLambda typeLambda, IEnumerable <IAccessorLambda> accessors) { this.typeLambda = typeLambda; this.accessors = accessors; }