Roslyn 是新一代的开源 C#/Visual Basic 编译器,Visual Studio 2015 的 C#/Visual Basic 开发环境就基于 Roslyn,TypeScript 和 XAML 编辑器也使用了 Roslyn 提供部分支持。
基于 Roslyn 可以使用 C#/Visual Basic 快速创建 Analyzer 和 CodeFix,针对 C#/Visual Basic 的 Analyzer 需要分别编写但不一定要使用对应语言。成品可以直接打包成 NuGet package 加入目标项目的 Reference 里,使用非常方便。
本文以非著名二进制序列化格式 MessagePack 所面临的问题,编写一个简单的 Analyzer 进行解决。