/// <summary> /// Adds a pre-defined set of code generator services to provide Chrome Remote Interface generation. /// </summary> /// <param name="serviceCollection"></param> /// <param name="settings"></param> /// <returns></returns> public static IServiceCollection AddCodeGenerationServices(this IServiceCollection serviceCollection, CodeGenerationSettings settings) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } return(serviceCollection .AddSingleton(settings) .AddSingleton <TemplatesManager>() .AddSingleton <ICodeGenerator <ProtocolDefinition> >((sp) => new ProtocolGenerator(sp)) .AddSingleton <ICodeGenerator <DomainDefinition> >((sp) => new DomainGenerator(sp)) .AddSingleton <ICodeGenerator <TypeDefinition> >((sp) => new TypeGenerator(sp)) .AddSingleton <ICodeGenerator <CommandDefinition> >((sp) => new CommandGenerator(sp)) .AddSingleton <ICodeGenerator <EventDefinition> >((sp) => new EventGenerator(sp))); }
/// <summary> /// Replaces tokens in the target path. /// </summary> /// <param name="path"></param> /// <param name="className"></param> /// <param name="context"></param> /// <param name="settings"></param> /// <returns></returns> public static string ReplaceTokensInPath(string path, string className, CodeGeneratorContext context, CodeGenerationSettings settings) { path = path.Replace("{{className}}", className); path = path.Replace("{{rootNamespace}}", settings.RootNamespace); path = path.Replace("{{templatePath}}", settings.TemplatesPath); path = path.Replace("{{domainName}}", context.Domain.Name); return(path); }
public TemplatesManager(CodeGenerationSettings settings) { m_settings = settings ?? throw new ArgumentNullException(nameof(settings)); }