本文整理汇总了C#中IWorkspace.ApplyChanges方法的典型用法代码示例。如果您正苦于以下问题:C# IWorkspace.ApplyChanges方法的具体用法?C# IWorkspace.ApplyChanges怎么用?C# IWorkspace.ApplyChanges使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IWorkspace
的用法示例。
在下文中一共展示了IWorkspace.ApplyChanges方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Process
private static void Process(IWorkspace workspace)
{
ISolution solution = workspace.CurrentSolution;
ISolution newSolution = solution;
IEnumerable<IProject> csharpProjects = solution.Projects.Where(x => x.LanguageServices.Language == LanguageNames.CSharp);
foreach (IProject project in csharpProjects)
{
IProject newProject = project;
string settingsFilePath = Path.Combine(Path.GetDirectoryName(project.FilePath), "Settings.StyleCop");
ISettings settings = (File.Exists(settingsFilePath)) ? new SettingsFile(settingsFilePath) : new SettingsFile();
foreach (DocumentId documentId in project.DocumentIds)
{
IDocument document = newSolution.GetDocument(documentId);
if (includeFiles == null || includeFiles.Contains(document.Name))
{
if (document.LanguageServices.Language == LanguageNames.CSharp)
{
SyntaxTree tree = (SyntaxTree)document.GetSyntaxTree();
SyntaxNode contents = tree.GetRoot();
if (!RuleRewriter.IsAutogenerated(contents))
{
Console.WriteLine(document.Name);
foreach (Type type in rewriters)
{
try
{
RuleRewriter fixer = RuleRewriterFactory.Create(type, settings, () =>
(SemanticModel)newProject.GetCompilation().GetSemanticModel(tree));
contents = fixer.Visit(contents);
document = document.UpdateSyntaxRoot(contents.Format(FormattingOptions.GetDefaultOptions()).GetFormattedRoot());
newProject = document.Project;
newSolution = newProject.Solution;
tree = (SyntaxTree)document.GetSyntaxTree();
contents = tree.GetRoot();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
}
}
}
workspace.ApplyChanges(solution, newSolution);
}