我有一個使用Visual Studio 2008創建的項目,其目標是使用HttpListenerRequest類的.NET 3.5。作爲統計信息收集機制的一部分,類的所有屬性都寫入文件。自從將項目轉換爲VS2010後,HttpListenerRequest屬性不再可用
我最近試圖將項目從VS2008解決方案轉換爲VS2010解決方案,並且在轉換過程中根本沒有錯誤,但只要我嘗試構建項目,編譯器聲稱它找不到「HttpListenerRequest .ServiceName「和」HttpListenerRequest.TransportContext「。
在這兩個項目上,目標框架都是.NET Framework 3.5,我比較了被引用的DLL版本號,看起來一切都一樣。
我決定檢查兩個版本的Visual Studio中的HttpListenerRequest類的元數據,以發現儘管2010沒有像預期的那樣引用ServiceName和TransportContext,但VS2008顯示了兩個屬性,但都沒有摘要描述。
然後我在VS2010中創建了一個針對.NET 4的項目,它允許我引用上述兩個屬性。
我確實需要繼續以.NET 3.5爲目標,無論如何,我可以在不更改代碼的情況下使其工作,以排除如此多的功能嗎?
編輯:按照要求,這是代碼:
void Log(System.Net.HttpListenerContext context)
{
string line =
DateTime.Now.ToString() + "|" +
context.Request.HttpMethod + "|" +
context.Request.RawUrl + "|" +
context.Request.Url.ToString() + "|" +
context.Request.RemoteEndPoint.ToString() + "|" +
(context.Request.UrlReferrer == null ? "None" : context.Request.UrlReferrer.ToString()) + "|" +
(context.Request.ServiceName == null ? "None" : context.Request.ServiceName) + "|" + // Error Here on ServiceName
context.Request.UserHostName + "|" +
context.Request.UserAgent + "|" +
context.Request.TransportContext.ToString() + "|" + // Error here on TransportContext
context.Request.ProtocolVersion + "|" +
context.Request.ContentLength64.ToString();
WriteToFile(line);
}
對我來說工作得很好(在VS2010,.Net 3.5中創建了新項目)。你能顯示導致錯誤的代碼嗎? – jeroenh
你走了,我把它放在你身上。 – Tony
我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –