我有以下代码:
public static string FormatHostAndUrl(this HttpSessionStateBase session)
{
var a = session["CurrentHost"];
var b = session["CurrentUrl"];
var c = string.Format("http://{0}{1}", session["CurrentHost"], new Uri((string)session["currentUrl"]).PathAndQuery);
return string.Format("http://{0}{1}", session["CurrentHost"], new Uri((string)session["currentUrl"]).PathAndQuery);
}
我用它来获取包括Port在内的确切URL。使用azure系统,我使用它似乎是提供正确URL的唯一代码组合。
我得到会话变量
Session["CurrentUrl"] = Request.Url.ToString();
Session["CurrentHost"] = Request.Headers["Host"];
我想要做的是扩展Request对象,以便我可以这样做:
Session["TheRealURLI Need"] = Request.RealURL();
是否可以使用扩展方法执行此操作?有哪些方法可以实现FormatHostAndUrl方法的功能?
答案 0 :(得分:6)
public static class Extensions
{
public static string GetRealUrl(this HttpRequest request)
{
return "will the real url please stand up?";
}
}
编辑:这里的重点是你扩展类,甚至是密封的。 如何获得HttpRequest
对象是无关紧要的,无论是通过Request
属性还是通过任何其他方式。你扩展了类型。该物业将效仿。