[英]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.