1
在以前的Roslyn版本中,我可以使用派生自SyntaxAnnotation
的类将自定义数据添加到SyntaxNode
。但现在SyntaxAnnotation
是密封的,我只能用SyntaxAnnotation
与字符串:种类和数据。这对我来说还不够。我想从AST构建自定义CFG并在CFG和AST节点之间建立双向链接。如何将自定义语法注释添加到SyntaxNode?
我该怎么做?
在以前的Roslyn版本中,我可以使用派生自SyntaxAnnotation
的类将自定义数据添加到SyntaxNode
。但现在SyntaxAnnotation
是密封的,我只能用SyntaxAnnotation
与字符串:种类和数据。这对我来说还不够。我想从AST构建自定义CFG并在CFG和AST节点之间建立双向链接。如何将自定义语法注释添加到SyntaxNode?
我该怎么做?
SyntaxAnnotation
是密封的,因为您的树可能会被序列化,我们需要能够序列化和反序列化注释。如果要存储更多信息,请将用于注释的字符串存储为包含该状态的字典的键。
谢谢凯文。我也在想字典。但是,这个决定并不是那么快,并且需要使用一些上下文对象(用于存储字典)。 – 2014-12-03 19:52:07
你会需要相同的上下文对象来存储注释,不是吗? – 2014-12-03 21:20:34
目前我不能说。因为如果我为每个SyntaxNode字典添加注释将会非常巨大。 – 2014-12-03 21:42:02