向虚拟方法添加自定义编译器警告

时间:2017-02-21 10:25:11

标签: c# visual-studio compiler-warnings roslyn

我正在扩展我们的一家公司图书馆,以便我的同事可以继承我们的一类业务逻辑。这将要求他们能够覆盖某些方法。但是,当遇到覆盖Equals()GetHashCode()逻辑时,我遇到了类似的问题。

当您只是覆盖其中一个方法时,Visual Studio会发出编译器警告。使用它是非常好的,这样如果我的同事忘记覆盖该方法,如果不覆盖其他方法,他会收到警告吗?

是否有可能(可能使用属性等)向Visual Studio中的类方法添加自定义编译器警告,只覆盖一个方法可能会导致行为不一致?

1 个答案:

答案 0 :(得分:1)

不,没有具体的内容。我认为你的选择是:

  1. 按照Panagiotis Kanavos的建议编写自定义分析仪。该分析器可以特定于您的类型,也可以检测属性的存在,如您所建议的那样。

    我认为生成的分析器不会非常复杂,但如果您从未使用过Roslyn API,那么学习如何编写它可能需要一些时间。

  2. 找出实现类似目的的不同编码模式。例如,您可以使用一种类型,其中两种方法都是abstract(因此您必须覆盖它们)和一种sealed(因此您无法覆盖它们)。

    我不确定这种具体方法是否值得,但也许类似的东西值得考虑。

相关问题