是否有一个产品/项目允许您定义一个MVC项目的约定来静态检查命令约定,例如Controller附加在从控制器继承的类的末尾并且/或在装饰时强制执行某个方法签名具有属性的方法。
我基本上正在寻找一种方法来为我们团队的新开发人员设置一些护栏,我们有一套明确的约定,其中一些用于通过反射动态连接。看到这种反射连接因签名不兼容而失败将对我们的提升过程带来巨大的好处。
需要的主要功能:
我们非常感谢任何输入建议,但我要求您只有在知道这些功能受支持时才会回复。
答案 0 :(得分:4)
这里的个人经历,但我总是为这样的事情写测试。我通过我的程序集解析并确保遵循约定。对于几个具体示例,我检查WCF请求/响应对象,以确保它们不通过线路发送“DTO”,并且它们都在一致的XML命名空间中。
这是一个快速示例,确保所有服务方法都返回继承BaseResponse对象的内容:
[Test]
public void All_IMyService_methods_should_return_a_BaseResponse()
{
var methods = typeof (IMyService).GetMethods();
foreach (var methodInfo in methods)
Assert.That(typeof (BaseResponse).IsAssignableFrom(methodInfo.ReturnType), "Service Method " + methodInfo.Name + " does not return a BaseResponse");
}
我确信有人会有更好/更自动化的东西,但这对我有用。