public NestedTypeGenerationContext(TypeGenerator generator, Func<BuilderBundle> bundle, Action<BaseTypeGenerationContext> nestedClosure, IList<ITypeGenerationAction> actions)
            : base(generator)
        {
            BaseType = typeof(object);
            TypeGenerationActions = actions;

            nestedType = new DefineNestedTypeAction(bundle(), () => TypeName, () => BaseType);
            TypeGenerationActions.Add(nestedType);

            Builder = () => nestedType.LocalBuilder;

            nestedClosure(this);
            if(!ConstructorAdded) AddDefaultConstructor();
        }
Esempio n. 2
0
        public NestedTypeGenerationContext(TypeGenerator generator, Func <BuilderBundle> bundle, Action <BaseTypeGenerationContext> nestedClosure, IList <ITypeGenerationAction> actions) : base(generator)
        {
            BaseType = typeof(object);
            TypeGenerationActions = actions;

            nestedType = new DefineNestedTypeAction(bundle(), () => TypeName, () => BaseType);
            TypeGenerationActions.Add(nestedType);

            Builder = () => nestedType.LocalBuilder;

            nestedClosure(this);
            if (!ConstructorAdded)
            {
                AddDefaultConstructor();
            }
        }
Esempio n. 3
0
        public TypeGenerationContext(TypeGenerator generator, Func <BuilderBundle> bundle, Action <TypeGenerationContext> nestedClosure) : base(generator)
        {
            BaseType = typeof(object);
            TypeGenerationActions = new List <ITypeGenerationAction>();

            var defineTypeAction = new DefineTypeAction(bundle(), () => TypeName, () => BaseType);

            TypeGenerationActions.Add(defineTypeAction);

            Builder = bundle;

            nestedClosure(this);
            if (!ConstructorAdded)
            {
                AddDefaultConstructor();
            }
        }
Esempio n. 4
0
 public BaseTypeGenerationContext(TypeGenerator generator)
 {
     typeGenerator   = generator;
     TypesToComplete = new List <Func <BuilderBundle> >();
 }