public AssemblyDataGenerator()
        {
            var docUtility    = new DataGeneratorUtility(new NameGenerator());
            var idGen         = new CommentIDGenerator();
            var typeUtility   = new TypeDataUtility(docUtility);
            var methodUtility = new MethodBaseUtility(docUtility, idGen);

            methodGen   = new MethodDataGenerator(docUtility, methodUtility);
            classGen    = new ClassDataGenerator(docUtility, typeUtility, idGen);
            enumGen     = new EnumDataGenerator(docUtility, typeUtility, idGen);
            eventGen    = new EventDataGenerator(docUtility, methodUtility, idGen);
            fieldGen    = new FieldDataGenerator(docUtility, idGen);
            propertyGen = new PropertyDataGenerator(docUtility, methodUtility, idGen);
            ctorGen     = new ConstructorDataGenerator(methodUtility);
            operatorGen = new OperatorDataGenerator(methodGen);
        }
        public AssemblyDataGenerator(
            IClassDataGenerator classGen,
            IEnumDataGenerator enumGen,
            IEventDataGenerator eventGen,
            IFieldDataGenerator fieldGen,
            IPropertyDataGenerator propertyGen,
            IConstructorDataGenerator ctorGen,
            IOperatorDataGenerator operatorGen,
            IMethodDataGenerator methodGen
            )
        {
            Check.Ref(classGen, enumGen, eventGen, fieldGen, propertyGen, ctorGen, operatorGen, methodGen);

            this.classGen = classGen;
            this.enumGen  = enumGen;

            this.eventGen    = eventGen;
            this.fieldGen    = fieldGen;
            this.propertyGen = propertyGen;
            this.ctorGen     = ctorGen;
            this.operatorGen = operatorGen;
            this.methodGen   = methodGen;
        }