簡體   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