是否可以为某些方法或参数生成 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 建议
我们的团队在 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 建议