代码之家  ›  专栏  ›  技术社区  ›  Scott Nimrod

编译时间:如何检查方法中是否使用了数据类型(和或值)

  •  0
  • Scott Nimrod  · 技术社区  · 9 年前

    在编译时,如何检查方法中是否使用了数据类型(和或值)。

    我在努力谋生 architecture 支持插件的。

    如果插件中没有引发事件,我希望编译器抛出错误。

    我正在使用VS2015预览版。

    有什么建议吗?

    2 回复  |  直到 9 年前
        1
  •  0
  •   Jakub Linhart    9 年前

    这种验证可以使用PostSharp实现。它不是微不足道的,但比使用MonoCecil更容易。 SyntaxTreeVisitor ISyntaxReflectionService 是实现分析算法的良好基础,必须从 Aspect.CompileTimeValidate .

    Roslyn 也必须提及。它允许您使用自定义诊断来“扩展”C#(或VisualBasic)编译器,并且它与VS2015非常集成。

    免责声明:我是PostSharp开发人员。

        2
  •  0
  •   Sebastiaan M    9 年前

    我认为你不能让编译器为你抛出那个错误。您可能能够引入一个额外的构建步骤,该步骤执行一个C#控制台应用程序,该应用程序检查(使用反射)您想要的内容。