示例#1
0
        static void Main(string project, string[] transformers)
        {
            AnalyzerManager manager   = new AnalyzerManager();
            ProjectAnalyzer analyzer  = manager.GetProject(project);
            AdhocWorkspace  workspace = new AdhocWorkspace();

            analyzer.SetGlobalProperty("BuildingFromCodeGeneration", "true");
            var Project = analyzer.AddToWorkspace(workspace, true);

            if (Project is null)
            {
                throw new ArgumentException($"Project is null. ({project})");
            }
            var resolver = new CSharpAutofacResolver();
            var Engine   = new CSharpCodeGenerationEngine(Project, resolver);

            foreach (var item in transformers)
            {
                var assembly    = LoadAssembly(item);
                var transformer = LoadTransformer(assembly, Engine);
                transformer.Transform();
            }
            var changes = Engine.CurrentProject.GetChanges(Project);

            Procces(Engine, project, changes.GetAddedDocuments(), "Added");
            var changedDocs = changes.GetChangedDocuments(false).Where(x => Engine.CurrentProject.GetDocument(x).GetTextChangesAsync(Project.GetDocument(x)).Result.Any());

            Procces(Engine, project, changedDocs, "Updated");
        }