注釈がどこに行ったのか ( Where is my annotation? )に関する質問への回答を得て、20 回ほど読み直しましたが、なぜこのコードが機能しないのか、なぜ注釈を付けられないのかはまだ不明ですプロパティ、問題はどこにありますか。読みやすいようにコードをインライン化しました...
SyntaxAnnotation propertyAnnotation = null;
SyntaxAnnotation classAnnotation = null;
//first annotate class
classAnnotation = new SyntaxAnnotation();
var newRoot = document.GetSyntaxRoot()
.ReplaceNode(classDeclaration, classDeclaration.WithAdditionalAnnotations(classAnnotation));
document = document.UpdateSyntaxRoot(newRoot);
//now annotate property
//first look for classNode that was annotated in previous step
var classNode = document.GetAnnotatedNode<ClassDeclarationSyntax>(classAnnotation);
//now annotate property
propertyAnnotation = new SyntaxAnnotation();
var newClassNode = classNode.ReplaceNode(propertyDeclaration, propertyDeclaration.WithAdditionalAnnotations(propertyAnnotation));
newRoot = document.GetSyntaxRoot()
.ReplaceNode(classNode, newClassNode);
document = document.UpdateSyntaxRoot(newRoot);
//Works
newClassNode = document.GetAnnotatedNode<ClassDeclarationSyntax>(classAnnotation);
//Fails here????
var newPropertyNode = document.GetAnnotatedNode<PropertyDeclarationSyntax>(propertyAnnotation);