public virtual void CompileViews([NotNull] IBeforeCompileContext context) { var descriptors = CreateCompilationDescriptors(context); if (descriptors.Count > 0) { var collectionGenerator = new RazorFileInfoCollectionGenerator( descriptors, SyntaxTreeGenerator.GetParseOptions(context.CSharpCompilation)); var tree = collectionGenerator.GenerateCollection(); context.CSharpCompilation = context.CSharpCompilation.AddSyntaxTrees(tree); } }
protected virtual IReadOnlyList <RazorFileInfo> CreateCompilationDescriptors( [NotNull] IBeforeCompileContext context) { var options = SyntaxTreeGenerator.GetParseOptions(context.CSharpCompilation); var list = new List <RazorFileInfo>(); foreach (var info in GetFileInfosRecursive(string.Empty)) { var descriptor = ParseView(info, context, options); if (descriptor != null) { list.Add(descriptor); } } return(list); }