我想在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/