试图在roslyn获得一个类实例的识别
本文关键字:一个 实例 识别 roslyn | 更新日期: 2023-09-27 18:16:06
我正在写一个Visual Studio扩展,我想通过它的名称和位置获得变量的类型。
例如:有一个c#代码:
class Program
{
static void Main(string[] args)
{
var flagMick = true;
Console.WriteLine(""Hello, World!"");
}
}
我能够与ExpressionEvaluator和DTE通信,我能够从快照中读取数据并了解其位置。我有具体的位置,但是:
我不想"重新学习"c#解析,这就是Roslyn应该做的。
所以我想我的扩展来识别"旗杆"的类型,给定它的名称和位置在屏幕上。
我怎么能和Roslyn这样呢?
使用以下代码:
var doc = point.Snapshot.GetOpenDocumentInCurrentContextWithChanges();
var model = doc.GetSemanticModelAsync().Result;
var symbol = SymbolFinder.FindSymbolAtPosition(model, point, doc.Project.Solution.Workspace);
您将需要一个对Microsoft.CodeAnalysis.EditorFeatures.Text.dll的引用,您可以通过添加适当的NuGet包来获得。