65.9K
CodeProject 正在变化。 阅读更多。
Home

创建源代码生成器的样板指南 - 第 4 部分

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2024年1月18日

MIT

3分钟阅读

viewsIcon

2892

一个包含 6 篇文章的系列,为您提供创建源代码生成器的样板指南。

目录

调试源代码生成器

我已经看到了几种调试方法,我认为我将展示的方法是最简单、最直接的方法。

安装

  • 打开源代码生成器项目文件,并将以下内容添加到 PropertyGroup
    <IsRoslynComponent>true</IsRoslynComponent>
  • 关闭 Visual Studio。
  • 重新打开解决方案。
  • 打开源代码生成器项目的属性
    • 单击或向下滚动到“调试”部分。
    • 单击“打开调试启动配置文件 UI”。
    • 删除现有的配置文件。
    • 基于“Rosyln Component”添加一个新的配置文件。
    • 在下拉列表中,选择您的测试应用程序。
  • 关闭所有窗口。

这会将配置文件添加到 Properties -> launchSettings.json 文件中。

调试

  • 将启动项目更改为源代码生成器。
  • 打开 BaseGenerator.cs 的源代码,并在 Initialize 方法的开头设置一个断点。
  • F5 或您通常使用的方式启动调试器。

此时,您应该会命中该断点。

从这一点继续是正常的。 您可以访问监视窗口并设置条件断点。

检查 Microsoft 类

可以检查两种类型的类

  • 语法
  • 语义

语法就是这样,它是解析器生成的用于确定您的源代码是否有效的信息。 更多信息可以在这里找到:使用语法。 如果您想看看它是什么样的,在 Visual Studio 中,选择 view -> Other Windows -> Syntax Visualizer。 然后,您可以单击任何类定义,然后开始探索。

语义提供了关于实际类本身的附加信息,其中可能包括属性、接口、基类等。 更多信息可以在这里找到:使用语义

这两部分是生成的关键。 它们是很大的话题,不可能在这个入门教程中描述。

我能说的最好的是,在调试时查看您当前正在处理的对象。 您将能够通过父属性向上导航,或通过您感兴趣的子级向下导航。

最后的智慧之言

我通过在 BaseGenerator 类中提供 GetClassInformation() 方法来帮助您获取一些信息。

源代码生成器对我来说仍然是新的,因此我提供的内容对于您或我可能需要的每件事来说远未完成。

对于我在创建更多生成器时来说,它应该是一个起点。 我计划在将来根据需要继续改进、重构和添加辅助方法。

历史

  • 2024年1月18日:初始版本
© . All rights reserved.