public FieldReference CreateStaticField(string name, Type fieldType, FieldAttributes attributes) { ArgumentUtility.CheckNotNull("name", name); ArgumentUtility.CheckNotNull("fieldType", fieldType); return(InnerEmitter.CreateStaticField(name, fieldType, attributes)); }
public FieldReference CreateField(string name, Type fieldType) { ArgumentUtility.CheckNotNull("name", name); ArgumentUtility.CheckNotNull("fieldType", fieldType); return(InnerEmitter.CreateField(name, fieldType)); }
public Type BuildType() { _hasBeenBuilt = true; foreach (CustomEventEmitter eventEmitter in _eventEmitters) { eventEmitter.EnsureValid(); } return(InnerEmitter.BuildType()); }
private void ReplicateBaseTypeConstructor(ConstructorInfo constructor, Action <ConstructorEmitter> preStatementsAdder, Action <ConstructorEmitter> postStatementsAdder) { ArgumentUtility.CheckNotNull("constructor", constructor); ArgumentUtility.CheckNotNull("preStatementsAdder", preStatementsAdder); ArgumentUtility.CheckNotNull("postStatementsAdder", postStatementsAdder); ArgumentReference[] arguments = ArgumentsUtil.ConvertToArgumentReference(constructor.GetParameters()); ConstructorEmitter newConstructor = InnerEmitter.CreateConstructor(arguments); preStatementsAdder(newConstructor); Expression[] argumentExpressions = ArgumentsUtil.ConvertArgumentReferenceToExpression(arguments); newConstructor.CodeBuilder.AddStatement(new ConstructorInvocationStatement(constructor, argumentExpressions)); postStatementsAdder(newConstructor); newConstructor.CodeBuilder.AddStatement(new ReturnStatement()); }
public ConstructorEmitter CreateTypeConstructor() { return(InnerEmitter.CreateTypeConstructor()); }
public void CreateDefaultConstructor() { InnerEmitter.CreateDefaultConstructor(); }
public ConstructorEmitter CreateConstructor(ArgumentReference[] arguments) { ArgumentUtility.CheckNotNull("arguments", arguments); return(InnerEmitter.CreateConstructor(arguments)); }