C# 从分类器VSIX获取语义模型

C# 从分类器VSIX获取语义模型,c#,visual-studio-2013,roslyn,C#,Visual Studio 2013,Roslyn,由于R#不支持Roslyn早期预览C#6.0功能,代码看起来非常枯燥 我想使用分类器VSIX对代码着色。是否可以从Roslyn语言服务获取当前文档的语义模型?您需要添加对Microsoft.CodeAnalysis.EditorFeatures.Text.dll的引用,然后使用以下代码 var doc = point.Snapshot.GetOpenDocumentInCurrentContextWithChanges(); var model = await doc.GetSemanticMo

由于R#不支持Roslyn早期预览C#6.0功能,代码看起来非常枯燥


我想使用分类器VSIX对代码着色。是否可以从Roslyn语言服务获取当前文档的语义模型?

您需要添加对Microsoft.CodeAnalysis.EditorFeatures.Text.dll的引用,然后使用以下代码

var doc = point.Snapshot.GetOpenDocumentInCurrentContextWithChanges();
var model = await doc.GetSemanticModelAsync();

这需要
Microsoft.CodeAnalysis.EditorFeatures.Text
NuGet软件包(.NET 4.6必需)

不幸的是,point.Snapshot.GetOpenDocumentInCurrentContextWithChanges()总是返回null@Liviu:这是什么样的文件?
TextBuffer
ContentType
是什么?Roslyn预览版是否安装在您运行的VS配置单元中?(使用匹配的版本)我最终发现调试会话正在Exp-hive中运行。GetOpenDocumentInCurrentContextWithChanges给了我一些奇怪的可访问性问题。@MickeyPerlstein安装Microsoft.CodeAnalysis.EditorFeatures.Text包,它通过添加具有该名称的扩展方法来更改此方法的可访问性