Пример #1
0
        public string GenerateClassString(ContainerClassDescription containerClassDescription)
        {
            var registrations = RegistrationCreator.GetRegistrationsFromInterfaces(_registrationSymbols, containerClassDescription.AllInterfaces);
            var typesRequiringConstructors = ConstructorForTypeFinder.GetTypesRequiringConstructorsFromContainerAttributes(_registrationSymbols, containerClassDescription.AllAttributes);
            var dependencyGraph            = DependencyGraph.FromRegistrations(registrations);

            var serviceConstructorMethods = typesRequiringConstructors.Select(t => CreateServiceConstructor(t, dependencyGraph)).ToArray();
            var allServiceMethods         = dependencyGraph.Registrations.Select(r => CreateResolvableService(r.Service(), dependencyGraph)).ToArray();

            var factoryClasses = registrations.FactoryRegistrations().Select(f => CreateFactoryClassDeclaration(f, dependencyGraph)).ToArray();
            var singletonVariableDeclarations = dependencyGraph.Registrations.SingletonRegistrations().Select(CreateSingletonVariableDeclaration)
                                                .Concat(registrations.FactoryRegistrations().Select(CreateFactoryVariableDeclaration)).ToArray();

            var content = new ContainerClassContent(containerClassDescription.FullyQualifiedNamespace, containerClassDescription.ShortName, singletonVariableDeclarations, serviceConstructorMethods, allServiceMethods, factoryClasses);

            return(content.AsString());
        }
        public string GenerateClassString(ContainerClassDescription containerClassDescription)
        {
            var content = new AspNetCoreContainerClassContent(containerClassDescription.FullyQualifiedNamespace, containerClassDescription.ShortName);

            return(content.AsString());
        }