private void Init() { // touch assembly SyntaxFactory.Token(SyntaxKind.NullKeyword); InitOptions(); if (Options.FullCompile) if (!Directory.Exists(Options.OutputPath)) Directory.CreateDirectory(Options.OutputPath); var wsa = assemblyDictionary.GetOrAdd(Options.WebSiteAssembly, _ => Assembly.LoadFrom(Options.WebSiteAssembly)); configuration = GetCachedConfiguration(wsa, Options.WebSitePath); bindingCompiler = new AssemblyBindingCompiler(Options.BindingsAssemblyName, Options.BindingClassName, Path.Combine(Options.OutputPath, Options.BindingsAssemblyName + ".dll"), configuration); configuration.ServiceLocator.RegisterSingleton<IBindingCompiler>(() => bindingCompiler); configuration.ServiceLocator.RegisterSingleton<IControlResolver>(() => new OfflineCompilationControlResolver(configuration, this)); if (Options.DothtmlFiles == null) Options.DothtmlFiles = configuration.RouteTable.Select(r => r.VirtualPath).ToArray(); controlTreeResolver = configuration.ServiceLocator.GetService<IControlTreeResolver>(); fileLoader = configuration.ServiceLocator.GetService<IMarkupFileLoader>(); if (Options.FullCompile) { compiler = configuration.ServiceLocator.GetService<IViewCompiler>(); compilation = compiler.CreateCompilation(Options.AssemblyName); } if (Options.SerializeConfig) { result.Configuration = configuration; } // touch assemblies }
public DefaultViewCompiler(IOptions <ViewCompilerConfiguration> config, IControlTreeResolver controlTreeResolver, IBindingCompiler bindingCompiler, Func <Validation.ControlUsageValidationVisitor> controlValidatorFactory, CompiledAssemblyCache compiledAssemblyCache) { this.config = config.Value; this.controlTreeResolver = controlTreeResolver; this.bindingCompiler = bindingCompiler; this.controlValidatorFactory = controlValidatorFactory; this.assemblyCache = compiledAssemblyCache; }
public DefaultViewCompiler(IOptions <ViewCompilerConfiguration> config, IControlTreeResolver controlTreeResolver, IBindingCompiler bindingCompiler, Func <Validation.ControlUsageValidationVisitor> controlValidatorFactory, DotvvmMarkupConfiguration markupConfiguration) { this.config = config.Value; this.controlTreeResolver = controlTreeResolver; this.bindingCompiler = bindingCompiler; this.assemblyCache = CompiledAssemblyCache.Instance; this.controlValidatorFactory = controlValidatorFactory; this.markupConfiguration = markupConfiguration; }
public DefaultViewCompiler(IOptions <ViewCompilerConfiguration> config, IControlTreeResolver controlTreeResolver, IBindingCompiler bindingCompiler, Func <Validation.ControlUsageValidationVisitor> controlValidatorFactory, DotvvmMarkupConfiguration markupConfiguration) { this.config = config.Value; this.controlTreeResolver = controlTreeResolver; this.bindingCompiler = bindingCompiler; this.assemblyCache = CompiledAssemblyCache.Instance; this.controlValidatorFactory = controlValidatorFactory; this.markupConfiguration = markupConfiguration; this.referencedAssembliesCache = new Lazy <IEnumerable <Assembly> >(BuildReferencedAssembliesCache, true); }
private void Init() { if (Options.FullCompile) { // touch assembly SyntaxFactory.Token(SyntaxKind.NullKeyword); InitOptions(); if (!Directory.Exists(Options.OutputPath)) { Directory.CreateDirectory(Options.OutputPath); } } var wsa = assemblyDictionary.GetOrAdd(Options.WebSiteAssembly, _ => Assembly.LoadFile(Options.WebSiteAssembly)); configuration = GetCachedConfiguration(wsa, Options.WebSitePath, (services) => { if (Options.FullCompile) { throw new NotImplementedException(); //TODO: LAST PARAMETER | bindingCompiler = new AssemblyBindingCompiler(Options.BindingsAssemblyName, Options.BindingClassName, Path.Combine(Options.OutputPath, Options.BindingsAssemblyName + ".dll"), null); services.AddSingleton <IBindingCompiler>(bindingCompiler); services.AddSingleton <IExpressionToDelegateCompiler>(bindingCompiler.GetExpressionToDelegateCompiler()); } }); if (Options.SerializeConfig) { result.Configuration = configuration; } if (Options.DothtmlFiles == null) { Options.DothtmlFiles = configuration.RouteTable.Select(r => r.VirtualPath).Where(r => !string.IsNullOrWhiteSpace(r)).ToArray(); } if (Options.FullCompile || Options.CheckBindingErrors) { compiledAssemblyCache = configuration.ServiceProvider.GetService <CompiledAssemblyCache>(); controlTreeResolver = configuration.ServiceProvider.GetService <IControlTreeResolver>(); fileLoader = configuration.ServiceProvider.GetService <IMarkupFileLoader>(); } if (Options.FullCompile) { compiler = configuration.ServiceProvider.GetService <IViewCompiler>(); compilation = compiler.CreateCompilation(Options.AssemblyName); } }
private void Init() { if (Options.FullCompile) { // touch assembly SyntaxFactory.Token(SyntaxKind.NullKeyword); InitOptions(); if (!Directory.Exists(Options.OutputPath)) { Directory.CreateDirectory(Options.OutputPath); } } var wsa = assemblyDictionary.GetOrAdd(Options.WebSiteAssembly, _ => Assembly.LoadFile(Options.WebSiteAssembly)); AssemblyResolver.LoadReferences(wsa); configuration = GetCachedConfiguration(wsa, Options.WebSitePath, (services) => { if (Options.FullCompile) { services.AddSingleton <IBindingCompiler>(s => bindingCompiler = new AssemblyBindingCompiler(Options.BindingsAssemblyName, Options.BindingClassName, Path.Combine(Options.OutputPath, Options.BindingsAssemblyName + ".dll"), s.GetRequiredService <DotvvmConfiguration>())); } }); if (Options.DothtmlFiles == null || !Options.DothtmlFiles.Any()) { Options.DothtmlFiles = configuration.RouteTable.Select(r => r.VirtualPath).ToArray(); } if (Options.FullCompile) { controlTreeResolver = configuration.ServiceProvider.GetRequiredService <IControlTreeResolver>(); fileLoader = configuration.ServiceProvider.GetRequiredService <IMarkupFileLoader>(); compiler = configuration.ServiceProvider.GetRequiredService <IViewCompiler>(); compilation = compiler.CreateCompilation(Options.AssemblyName); } if (Options.SerializeConfig) { result.Configuration = configuration; } }
private void Init() { // touch assembly SyntaxFactory.Token(SyntaxKind.NullKeyword); InitOptions(); if (Options.FullCompile) { if (!Directory.Exists(Options.OutputPath)) { Directory.CreateDirectory(Options.OutputPath); } } var wsa = assemblyDictionary.GetOrAdd(Options.WebSiteAssembly, _ => Assembly.LoadFrom(Options.WebSiteAssembly)); configuration = GetCachedConfiguration(wsa, Options.WebSitePath); bindingCompiler = new AssemblyBindingCompiler(Options.BindingsAssemblyName, Options.BindingClassName, Path.Combine(Options.OutputPath, Options.BindingsAssemblyName + ".dll"), configuration); configuration.ServiceLocator.RegisterSingleton <IBindingCompiler>(() => bindingCompiler); configuration.ServiceLocator.RegisterSingleton <IControlResolver>(() => new OfflineCompilationControlResolver(configuration, this)); if (Options.DothtmlFiles == null) { Options.DothtmlFiles = configuration.RouteTable.Select(r => r.VirtualPath).ToArray(); } controlTreeResolver = configuration.ServiceLocator.GetService <IControlTreeResolver>(); fileLoader = configuration.ServiceLocator.GetService <IMarkupFileLoader>(); if (Options.FullCompile) { compiler = configuration.ServiceLocator.GetService <IViewCompiler>(); compilation = compiler.CreateCompilation(Options.AssemblyName); } if (Options.SerializeConfig) { result.Configuration = configuration; } // touch assemblies }
public void TestInit() { configuration = DotvvmTestHelper.CreateConfiguration(); configuration.Markup.AddCodeControls("cc", typeof(ClassWithInnerElementProperty)); controlTreeResolver = configuration.ServiceProvider.GetRequiredService <IControlTreeResolver>(); }
public IAbstractTreeRoot BuildTreeRoot(IControlTreeResolver controlTreeResolver, IControlResolverMetadata metadata, DothtmlRootNode node, IDataContextStack dataContext, IReadOnlyDictionary <string, IReadOnlyList <IAbstractDirective> > directives) { return(new ResolvedTreeRoot((ControlResolverMetadata)metadata, node, (DataContextStack)dataContext, directives)); }
public void TestInit() { configuration = DotvvmConfiguration.CreateDefault(); controlTreeResolver = configuration.ServiceLocator.GetService<IControlTreeResolver>(); }
public void TestInit() { configuration = DotvvmConfiguration.CreateDefault(); controlTreeResolver = configuration.ServiceLocator.GetService <IControlTreeResolver>(); }
public void TestInit() { configuration = DotvvmConfiguration.CreateDefault(); configuration.Markup.AddCodeControls("cc", typeof(ClassWithInnerElementProperty)); controlTreeResolver = configuration.ServiceLocator.GetService <IControlTreeResolver>(); }
public IAbstractTreeRoot BuildTreeRoot(IControlTreeResolver controlTreeResolver, IControlResolverMetadata metadata, DothtmlRootNode node, IDataContextStack dataContext) { return new ResolvedTreeRoot((ControlResolverMetadata)metadata, node, (DataContextStack)dataContext); }