我可以使用Roslyn进行编译时代码重写吗?
-
27-10-2019 - |
题
例如我有 通用标签
我可以获取Foo类AST并在编译时将Bar重写为 通用标签
。
解决方案
Roslyn目前不直接支持编译时重写,但是绝对支持语法和语义转换。实际上,请看一下CTP中包含的“ ImplementNotifyPropertyChanged”示例,以了解您要执行的操作。该示例是作为设计时转换和IDE功能实现的,但是您可以提取逻辑并将其变成类似预构建任务的任务,该任务在编译之前会重写文件。
其他提示
我认为在当前发布的CTP中这是不可能的,因为编译器作为服务存在,但是没有像Nemerle那样可以让您插入编译过程的东西。
不隶属于 StackOverflow