[英]In C#, how can I get the name of the calling project from within a referenced project?
我有三個項目:My.Business,My.WebSite和My.WebService
我需要我的日志記錄類,以便能夠識別何時從網站請求請求到Web服務。 以前,我曾將Web服務作為單獨的應用程序在網站下面運行,所以我只使用了不同的配置文件,效果很好。 但是我希望Web服務現在可以在同一應用程序下運行。
如果我能確定請求是來自My.WebSite還是My.WebService,我會被設置,但是我不確定該怎么做。
由於Web服務請求以“ .asmx”結尾,因此可以使用以下概念,但是感覺不對。
return HttpContext.Current.Request.Path.IndexOf(".asmx") >= 0 ? "My.WebService" : "My.WebSite";
謝謝!
您應該能夠使用Assembly.GetCallingAssembly():
return Assembly.GetCallingAssembly().FullName;
這將返回調用當前執行方法的程序集,因此您可以捕獲以這種方式調用My.Business程序集的任何人。
話雖如此,我傾向於同意梅里昂·休斯的上述評論。 您可能想考慮將任何必需的信息傳遞給日志記錄類,尤其是如果將來有可能在更多應用程序中使用它時。
this.GetType().Assembly.FullName
將為您提供當前類的程序集名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.