繁体   English   中英

在 Visual Studio 2017 中缩小 C3 代码

[英]Minify C3 code in Visual Studio 2017

我想缩小 Visual Studio 2017 中的 C# 代码(文件)。是否有任何扩展或其他方法可以做到这一点。 我已经搜索过了,没有找到任何有用的东西。 我知道有一些方法可以缩小 js、CSS 或 HTML 文件,但是如果存在的话,我需要用于 C# 的缩小器

您可以编写一个从基类CSharpSyntaxRewriter继承的类,并使用它来根据您希望缩小代码的方式缩小代码。

初学者将删除所有语法琐事,这可以通过CSharpSyntaxRewriter基类的以下实现轻松实现:

public class TriviaRemover : CSharpSyntaxRewriter
{
    public override SyntaxNode Visit(SyntaxNode node) => base.Visit(node).WithoutTrivia();

    public override SyntaxTrivia VisitTrivia(SyntaxTrivia trivia) => default;
}

要实际使用它,类似于以下示例的内容将起作用:

var tree = CSharpSyntaxTree.ParseText(@"
  public class Foo
  {
      //Here some trivia to be removed
      public string bar = ""bar"";
  }");
var Mscorlib = MetadataReference.CreateFromFile(typeof(object).Assembly.Location);
var compilation = CSharpCompilation.Create("MyCompilation",
    syntaxTrees: new[] { tree }, references: new[] { Mscorlib });
var model = compilation.GetSemanticModel(tree);
var root = model.SyntaxTree.GetRoot();

var tr = new TriviaRemover();
var newRoot = tr.Visit(root);

Console.WriteLine(newRoot.GetText());
Console.ReadLine();

在这里查看另一个示例(上面的示例代码起源于此处): https : //johnkoerner.com/csharp/using-a-csharp-syntax-rewriter/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM