示例#1
0
        public GeneratedField AddField(Func <BuilderBundle> type, string fieldName)
        {
            var action = new AddFieldAction(Builder, () => fieldName, type);

            TypeGenerationActions.Add(action);

            return(new GeneratedField(type, action));
        }
示例#2
0
        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();
            }
        }
示例#3
0
 internal void AddDefaultConstructor()
 {
     TypeGenerationActions.Add(new AddDefaultConstructorAction(Builder));
     ConstructorAdded = true;
 }