C# koşullu derleme deyimini Roslyn kullanarak nasıl ayrıştırırım.Ayrıştırma # # Koşullu Derleme ifadeleri roslyn
Aşağıdaki kodda, Roslyn'in Koşullu derleme bildirimi düğümünü vermesini istiyorum.
public abstract class TestClass
{
public int Get()
{
#if DEBUG
return 1;
#else
return 2;
#endif
}
}
Ben SyntaxTree koşullu derleme düğümünü alamadım ve ne de ben }
arasında LeadingTrivia olsun ne }
ait LeadingTrivia veya {
ait TrailingTrivia parçasıdır "\t\t#endif\r\n\t\t"
olup {
ait TrailingTrivia "\r\n"
olan koşullu derleme ifadesi değil.
Birisi beni doğru yöne yönlendirebilir mi? Bunu yapabileceğini,
public override SyntaxNode VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
{
}
public override SyntaxNode VisitElseDirectiveTrivia(ElseDirectiveTriviaSyntax node)
{
}
public override SyntaxNode VisitEndIfDirectiveTrivia(EndIfDirectiveTriviaSyntax node)
{
}
değil ziyaretçiler aracılığıyla bu olsun istiyorsanız:: Eğer ziyaretçi (CSharpSyntaxRewriter \ Walker) üzerinden düğümleri ayrıştırmak Eğer
olmayan bir Roslyn çözümü düşünmeye hazırız, bunu yapabilecek Bu sürecin son derece basit olduğunu açıklayın. –
@ ira-baxter, roslyn specificc olmak zorunda – adeel41