我有一个可以为每个类定义一次的属性属性,以及一个名为ISql
的空接口,我只是用它来标记允许使用我的自定义buillt ORM的对象。
有没有办法强制实现ISql
的类至少拥有该属性一次?
答案 0 :(得分:6)
不,在实现必须提供的方面,属性不是接口合同的一部分。
对于这类事情,我通常只添加一个单元测试,它使用反射来查找所有实现并以这种方式验证它。它不像编译时检查那么好,但它是这种情况下最好的。
答案 1 :(得分:2)
对于这种代码验证,我喜欢使用Nitriq。您可以使用Linq轻松编写自己的规则。
个人使用时,您可以致电Nitriq验证代码。
在大型项目中,我曾经在持续集成上采取措施来运行Nitriq控制台以验证针对代码的规则