2014-12-02 76 views
1

在以前的Roslyn版本中,我可以使用派生自SyntaxAnnotation的类将自定义数据添加到SyntaxNode。但现在SyntaxAnnotation是密封的,我只能用SyntaxAnnotation与字符串:种类和数据。这对我来说还不够。我想从AST构建自定义CFG并在CFG和AST节点之间建立双向链接。如何将自定义语法注释添加到SyntaxNode?

我该怎么做?

回答

1

SyntaxAnnotation是密封的,因为您的树可能会被序列化,我们需要能够序列化和反序列化注释。如果要存储更多信息,请将用于注释的字符串存储为包含该状态的字典的键。

+0

谢谢凯文。我也在想字典。但是,这个决定并不是那么快,并且需要使用一些上下文对象(用于存储字典)。 – 2014-12-03 19:52:07

+0

你会需要相同的上下文对象来存储注释,不是吗? – 2014-12-03 21:20:34

+0

目前我不能说。因为如果我为每个SyntaxNode字典添加注释将会非常巨大。 – 2014-12-03 21:42:02