这是否可以在C#中确保方法/类已经给出签名的编译时间

时间:2014-02-06 13:35:00

标签: c# methods custom-attributes

这是否可以在C#中确保方法/类已经签名。

例如,我想确保某些方法是公共的和静态的。

当我不希望这个方法用红色下划线时。

我需要它,因为我在组件测试运行器应用程序中使用它,它使用反射并期望来自dll的公共静态bool方法。我想强迫程序员编写 public static bools 组件测试方法。这是否可能迫使他们编译时间?或者也许通过添加另一个简单的应用程序来强制他们建立时间,这个应用程

这可能吗?也许通过方法属性?通过反思?但是怎么样?

1 个答案:

答案 0 :(得分:1)

不幸的是,您无法更改/扩展C#编译器以实现您想要的功能。但是,有一个名为Roslyn的Microsoft项目公开了一个公共API,用于实现自己对C#编译管道的扩展。

使用Roslyn的结构,应该很容易遍历源代码语法树,寻找非公共/静态的方法。找到后,您可以生成报告问题的代码问题;这些问题在代码编辑器(波浪下划线)和错误列表面板中都会显示。来自Roslyn's official documentation

  

代码问题提供程序可以很容易地将错误或建议作为编辑器中的波浪下划线显示给用户,或显示在错误列表窗口中。

查看CodeIssueProviders的examples;它可能对你需要做的事情有用。