通常,我必須從ASP.NET應用程序的任何部分跨多個請求訪問相同的信息。使用下面的例子,我嘗試獲取當前請求的URL(通常我忘記了我需要的屬性)。我試圖想出一種類似於ASP.NET處理HttpContext的方法。到目前爲止,我已經拿出以下內容:ASP.NET自定義HttpContext線程問題
public interface ICustomContext {
HttpContextBase Http { get; }
string Url { get; }
}
public class CustomContext : ICustomContext {
private readonly HttpContextBase _httpContext;
public CustomContext(HttpContextBase httpContext) {
_httpContext = httpContext;
}
public HttpContextBase Http {
get { return _httpContext; }
}
public string Url {
get { return Http.Request.Url.AbsoluteUri; }
}
}
public class MyContext {
private static ICustomContext _instance = new CustomContext(new HttpContextWrapper(HttpContext.Current));
public static ICustomContext Current {
get { return _instance; }
}
}
這使我可以在我自己的上下文之後添加其他屬性。我希望我可以簡單地說:
MyContext.Current.Url;
但是,它總是在第一次調用時返回頁面的url。我猜這是一些線程問題,但我不知道如何解決它。
我會很感激的幫助。哦,請注意我最好喜歡一種乾淨且易於測試的解決方案。
感謝
爲什麼你需要通過MyContext獲取URL,而是直接從HttpContext.Current.Request獲取? – 2012-08-08 16:21:14
這只是一個例子。 – nfplee 2012-08-08 18:23:52
和您的問題的主要觀點是找到通過http請求共享數據的方式? – 2012-08-08 18:26:02