다음 코드를 사용하여 Roslyn 메서드 본문을 대체합니다. 나는이 작업을 수행 할 때메서드 본문을 바꾸면 다음 줄 바꿈이 제거됩니다.
/* method is instance of MethodDeclarationSyntax */
BlockSyntax newBody = SyntaxFactory.Block(SyntaxFactory.ParseStatement("throw new NotImplementedException();"));
BlockSyntax body = method.Body;
var modifiedMethod = method.ReplaceNode(body, newBody);
는하지만, 방법 후 줄 바꿈 제거하고 #region
또는 #endregion
태그는 방법 후에있을 경우 오류가 발생합니다. 예
#region
static void RemoveRegions(string str)
{
return;
}
#endregion
및 그것에 몸을
#region
static void RemoveRegions(string str)
{
throw new NotImplementedException();
} #endregion // This cause to compiling error
케빈 더 설명 할 수 있습니까? 나는 Roslyn에서 새로운 사람이다. –
옵션 2에 대해 "SyntaxTriva를 추가한다"- 개행은 BlockSyntax에서 "trailing trivia"이다. 퀴즈는 공백, 주석 등입니다. GetTrailingTrivia (http://source.roslyn.codeplex.com/#Microsoft.CodeAnalysis/Syntax/SyntaxNode.cs,2c8b23967d743711)를 사용하여 원본 BlockSyntax에 후행 트리 비어를 요청한 다음 WithTrailingTrivia (http://source.roslyn.codeplex.com/#Microsoft.CodeAnalysis/Syntax/SyntaxNodeExtensions.cs,c18822a3db364e2b,references)를 통해 newBody에 추가하십시오. 그런 다음 원 본문 뒤에 공백이 있으면 원하는 메서드 본문을 갖게됩니다. –
자세한 설명은이 설명을 별도로 작성하십시오. –