![](/img/trans.png)
[英]ASP.Net c# - How do I instantiate an instance of a WebUserControl from within a App_Code class?
[英]How can I get the URL of the current page from within a C# App_Code class?
我有一個日志類,它記錄了一些東西。 我想添加自動使用消息記錄當前頁面的功能。
有沒有辦法獲得我正在尋找的信息?
謝謝,
在您的類中,您可以使用HttpContext.Current屬性(在System.Web.dll中)。 從那里,您可以創建一系列屬性:
底層對象是一個Page對象,因此如果將其強制轉換為該對象,則使用通常在Page對象中使用的任何對象,例如Request屬性。
它很脆弱且難以測試,但您可以使用System.Web.HttpContext.Current ,它將為您提供一個Request屬性,而該屬性又具有RawUrl屬性。
public static class MyClass
{
public static string GetURL()
{
HttpRequest request = HttpContext.Current.Request;
string url = request.Url.ToString();
return url;
}
}
我試着把它分解一點:)
在過去,我還推出了自己的日志記錄類並使用了Console.Writeln(),但實際上已經有很多好的日志記錄選項,所以為什么要去那里? 我到處都使用NLog ; 它具有非常靈活的各種日志輸出目的地,包括控制台和文件,大量的日志格式選項,並且設置與各種.net框架(包括緊湊)的版本是微不足道的。 運行安裝程序會將NLog配置文件選項添加到Visual Studio“ 添加新項”對話框中。 在代碼中使用很簡單:
// declare in your class
private static Logger logger = LogManager.GetCurrentClassLogger();
...
// use in your code
logger.Debug(() => string.Format("Url: {0}", HttpContext.Current.Request.Url));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.