在Visual Studio 2017中缩小C3代码

问题描述 投票:1回答:1

我想在Visual Studio 2017中缩小C#代码(文件)。是否有任何扩展名或其他方式可以做到这一点。我已经搜索过,没有发现有用的信息。我知道有一些方法可以缩小js,CSS或HTML文件,但如果存在C#,我需要使用缩小器]

c# minify bundling-and-minification
1个回答
0
投票

您可以编写一个从基类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/

© www.soinside.com 2019 - 2024. All rights reserved.