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()); }