2
當給定輸入:刪除之前換行「:」像這樣將繼承
namespace Test
{
using System;
public class Test
{
public int? OBJECTID { get; set; }
}
}
我想使這個類擴展其他類。所以我寫了我的重寫本規則:
public override SyntaxNode VisitClassDeclaration(ClassDeclarationSyntax node)
{
node =
node.WithBaseList(
SyntaxFactory.BaseList()
.WithTypes(
SyntaxFactory.SingletonSeparatedList<BaseTypeSyntax>(
SyntaxFactory.SimpleBaseType(SyntaxFactory.ParseName("Form"))
.WithLeadingTrivia(SyntaxFactory.Space) //Space before 'Form'
.WithTrailingTrivia(SyntaxFactory.LineFeed) // NewLine after 'Form'
)
)
);
return base.VisitClassDeclaration(node);
}
但輸出我得到這個樣子的:
namespace Test
{
using System;
public class Test
: Form
{
public int? OBJECTID { get; set; }
}
}
我已經在許多不同的地點嘗試WithoutTrailingTrivia()
和WithoutLeadingTrivia()
,但我無法找到真正的放置它,在":"
之前刪除換行符。
你能幫我解決這個問題嗎?
+1。有時候瑣事屬於哪個標記有時並不是很直觀,但是當與Roslyn一起工作時,這有點顯而易見。畢竟,換行符在之前,他們只是增加了一個,現在他們很驚訝,有兩個:-) – Joey
我沒有使用這樣的工具,並且使用常規的調試工具很難找到它。 「標識符」沒有'WithoutTrailingTrivia()'和'WithoutLeadingTrivia()'方法,所以這也讓我失望。 – Wish