public GeneratedField AddField(Func <BuilderBundle> type, string fieldName) { var action = new AddFieldAction(Builder, () => fieldName, type); TypeGenerationActions.Add(action); return(new GeneratedField(type, action)); }
public void OverrideMethod(MethodInfo info, Action <OverrideMethodContext> nestedClosure) { var addMethodAction = new AddMethodAction(Builder, () => () => info.Name, () => () => info.ReturnType, () => info.GetParameters().Select(p => p.ParameterType).ToArray(), true); TypeGenerationActions.Add(addMethodAction); var method = new GeneratedMethod(() => addMethodAction.MethodBuilder, TypeGenerationActions); var context = new OverrideMethodContext(info, method, this); nestedClosure(context); if (!context.ReturnDeclared) { method.ReturnFrom(); } }
internal void AddDefaultConstructor() { TypeGenerationActions.Add(new AddDefaultConstructorAction(Builder)); ConstructorAdded = true; }