是否可以为某些方法或参数生成 compiler/Resharper 警告?

Is it possible to generate compiler/Resharper warnings for certain methods or parameters?

我们的团队在 C# 项目上工作,我们中的一些人经常无意中使用 "wrong" 方法或参数。两个例子:

// would be better to use our extension method .AsString() which is more performant
var s = myEnum.ToString();
// keepSubscriberReferenceAlive is set to true and returned token is unused, so this is a potential memory leak
eventAggregator.GetEvent<PubSubEvent<IEventHandler>>().Subscribe(EventHandler, ThreadOption.UIThread, true);

通常,有人偶然发现这样的代码,搜索其他事件,修复它们并向团队发送邮件说 "Don't ever do this again, because..."。

当然,如果有一种自动检测此类事件并生成警告的方法会更好。我知道 Resharper 警告可以自定义,但它可以针对某些方法或参数生成警告吗?或者是否有一些纯 C# 方法告诉编译器在这里生成警告?

在 Resharper 中有一个名为 Custom Code Inspections 的工具。

创建起来很容易。只需将您的代码部分粘贴到搜索模式中即可。

用符号 $ 覆盖它们。 Resharper 自动创建占位符。然后在替换模式中写下你想要的代码。

如果需要,您还可以编辑占位符。

在你的第一个例子中:

在代码中 Resharper 建议