我有一种情况,我想编写一个可以在 HttpResponse 和 HttpResponseBase 上使用的扩展。
经过一番研究,发现两者是兄弟,但只是通过Object类的简单扩展。
而且由于您只能用一个特定的类定义一个泛型,我遇到了一个问题,即必须编写两次相同的方法来处理两个不同的对象模型:Web 应用程序重定向和 MVC 重定向。
当前的实现,虽然我不喜欢它:
public static void RedirectTo404(this HttpResponseBase response)
{
response.Redirect("~/404.aspx");
}
public static void RedirectTo404(this HttpResponse response)
{
response.Redirect("~/404.aspx");
}
我想要这样的东西(我知道它在语法上不可能,但给出一个想法)
public static void RedirectTo404<T>(this T response) where T : HttpResponseBase , HttpResponse
{
response.Redirect("~/404.aspx");
}