gpt4 book ai didi

c# - 获取 cshtml 文件的语义模型?

转载 作者:太空狗 更新时间:2023-10-29 19:55:48 25 4
gpt4 key购买 nike

我想使用 Roslyn 在 Razor View 内的一段 C# 代码的上下文中分析语义信息。

有什么方法(在 Visual Studio 2015 中,甚至在单元测试中)获取表示此代码的 SemanticModel

最佳答案

Razor 文件包含一个 C# 投影缓冲区和生成的 C# 代码(包括您不自己编写的部分)。此缓冲区具有完整的 Roslyn 服务,正是您要找的。

您需要遍历 TextView 的 BufferGraph 并找到 CSharp缓冲;然后你可以得到它的Document和语义模型。

如果您从光标位置开始,您只需要将该位置映射到 CSharp缓冲区。

请注意,TextView 包含多个 是完全合法的 CSharp缓冲器。 (虽然 Razor 编辑器永远不会那样做)


如果您不在 TextView 中工作,则需要自己完成所有这些工作;您需要通过 Razor 编译器运行 Razor 源代码以获取生成的 C# 源代码,然后使用 Roslyn 对其进行编译以获得语义模型。

关于c# - 获取 cshtml 文件的语义模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28392086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com