如何在调试代码时忽略类属性。
问题描述:
我有一个解决方案,我授权控制器操作的请求。所以如果请求没有被认证,我把用户带到登录页面。如何在调试代码时忽略类属性。
这里的时候,我想测试一些功能我很注释掉授权属性,因为它需要我通过登录过程中的每一次(我想避免,而我在调试模式下)。
我想当我调试代码时避免[Authorize]属性操作。
namespace Student.Controllers
{
// Avoid Authorize Attribute when in Debug mode.
[Authorize]
public class StudentController : AppController
{
}
}
关于如何在调试时避免授权的任何想法(除了注释行之外)。
答
一种方法是使用Conditional compilation,这是冗长,但仍好于找到和评论的做法,这样
namespace Student.Controllers
{
// Avoid Authorize Attribute when in Debug mode.
#if !DEBUG
[Authorize]
#endif
public class StudentController : AppController
{
}
}
答
你不能。您可以编写自己的Authorize
属性版本,该属性检查Debugger.IsAttached
。
您可以做的最好的事情就是创建一个包含所需授权的测试环境。它将使开发比为了这个目标而调整自定义属性更容易。我能想到的
我希望我可以写我自己的授权属性,但作为现在我有owin处理它。但是,对于为此创建测试环境,我同意你的观点(我会在不久的将来尝试)。 –