示例#1
0
 public InitializationManager(TypeAnalyzer typeAnalyzer,
                              PrimitiveExpressionGenerator primitiveExpressionGenerator,
                              DictionaryExpressionGenerator dictionaryExpressionGenerator,
                              ComplexTypeInitializationGenerator complexTypeInitializationGenerator,
                              ArrayInitializationGenerator arrayInitializationGenerator,
                              AssignmentExpressionGenerator assignmentExpressionGenerator,
                              ArgumentListManager argumentListManager,
                              EnumExpressionGenerator enumExpressionGenerator,
                              ImmutableInitializationGenerator immutableInitializationGenerator,
                              ObjectInicializationExpressionGenerator objectInicializationExpressionGenerator,
                              GuidInitializationManager guidInitializationManager,
                              RegexInitializationManager regexInitializationManager,
                              PrimitiveNullableExpressionGenerator primitiveNullableExpressionGenerator)
 {
     _typeAnalyzer = typeAnalyzer;
     _primitiveExpressionGenerator       = primitiveExpressionGenerator;
     _dictionaryExpressionGenerator      = dictionaryExpressionGenerator;
     _complexTypeInitializationGenerator = complexTypeInitializationGenerator;
     _arrayInitializationGenerator       = arrayInitializationGenerator;
     _assignmentExpressionGenerator      = assignmentExpressionGenerator;
     _argumentListManager                     = argumentListManager;
     _enumExpressionGenerator                 = enumExpressionGenerator;
     _immutableInitializationGenerator        = immutableInitializationGenerator;
     _objectInicializationExpressionGenerator = objectInicializationExpressionGenerator;
     _guidInitializationManager               = guidInitializationManager;
     _regexInitializationManager              = regexInitializationManager;
     _primitiveNullableExpressionGenerator    = primitiveNullableExpressionGenerator;
 }
        public static CodeGeneratorManager Create(Dictionary <string, IReadOnlyList <string> > readonlyObjects, bool useConcreteType)
        {
            var argumentListManager = new ArgumentListManager(readonlyObjects, new ConcreteTypeAnalyzer(), new DumpStackToCSharpCode.ObjectInitializationGeneration.Constructor.ConstructorsManager());

            var initializationManager = new InitializationManager(new TypeAnalyzer(),
                                                                  new PrimitiveExpressionGenerator(),
                                                                  new DictionaryExpressionGenerator(),
                                                                  new ComplexTypeInitializationGenerator(new TypeAnalyzer()),
                                                                  new ArrayInitializationGenerator(new TypeAnalyzer()),
                                                                  new AssignmentExpressionGenerator(),
                                                                  argumentListManager,
                                                                  new EnumExpressionGenerator(),
                                                                  new ImmutableInitializationGenerator(),
                                                                  new DumpStackToCSharpCode.ObjectInitializationGeneration.Expression.ObjectInicializationExpressionGenerator(new TypeAnalyzer()),
                                                                  new DumpStackToCSharpCode.ObjectInitializationGeneration.Initialization.GuidInitializationManager(new ComplexTypeInitializationGenerator(new TypeAnalyzer()), new PrimitiveExpressionGenerator()),
                                                                  new DumpStackToCSharpCode.ObjectInitializationGeneration.Initialization.RegexInitializationManager(new ComplexTypeInitializationGenerator(new TypeAnalyzer()), new PrimitiveExpressionGenerator()),
                                                                  new DumpStackToCSharpCode.ObjectInitializationGeneration.Expression.PrimitiveNullableExpressionGenerator(new DumpStackToCSharpCode.ObjectInitializationGeneration.Expression.ObjectInicializationExpressionGenerator(new TypeAnalyzer())));

            return(new CodeGeneratorManager(new TypeAnalyzer(), initializationManager, new ArrayCodeGenerator(new VariableDeclarationManager(useConcreteType)), new VariableDeclarationManager(useConcreteType)));
        }