我有一個接口,我們稱之爲ILocateLogFile
,具有開發/測試/生產服務器的標準實現,並且只能在本地開發環境中使用。如果我在本地運行或在服務器上運行,我似乎無法想出一個很好的乾淨方式來決定(最好在編譯時,但運行時會很好)。這是一個託管在IIS上的WCF應用程序,如果這很重要的話。如何判斷代碼是否從Visual Studio/Cassini本地運行
我想出是使用編譯器符號最好的,是這樣的:
ILocateLogFile locateLogFile;
#if DEBUG
locateLogFile = new DevSandboxLogFileLocator();
#else
locateLogFile = new LogFileLocator();
#endif
的問題是,編譯符號得到由構建,這是我無法控制設置,和我想要確定。是不是有一些自動的方式來檢查Visual Studio的存在?或者至少檢查卡西尼,而不是IIS?
我已經看到了這個由一個if else語句作爲服務器名變量檢查之前解決的代碼。 – RandomUs1r
任何不使用.config文件來配置日誌記錄的原因? (可能您已經爲每個環境使用不同的.config,因此也可能無足輕重地添加日誌記錄)。 –
@ RandomUs1r這是一個很好的建議,但我不能使用'System.Web.HttpContext'因爲我的WCF服務沒有使用ASP.Net兼容性... – McGarnagle