如何检测.Net应用程序类型?

ope*_*lar 4 .net asp.net console winforms

我有一个库,需要以不同的方式响应异常,具体取决于它是在控制台应用程序,WinForms,AspNet还是Windows服务中运行.我已经尝试过查看System.Windows.Forms和System.Web命名空间中的各种属性,但是我找不到一种可靠的方法来检测哪种应用程序正在托管我的库.有没有人来过这里?有没有人有可靠的解决方案?

RSo*_*erg 5

如果我理解你正在寻找什么,你有一个单独的库进行错误处理,但是你想让库知道源是web,控制台,winforms等吗?

您可以使用库中的属性(例如枚举)来跟踪消费应用程序类型的内容.例如...

ErrorLogger error = new ErrorLogger(ErrorLoggerAppType.WinForm);
ErrorLogger error = new ErrorLogger(ErrorLoggerAppType.Web);
ErrorLogger error = new ErrorLogger(ErrorLoggerAppType.Console);
Run Code Online (Sandbox Code Playgroud)

编辑
来自Samir的评论...
此外,您可以随时为每种类型的应用程序创建一个类,在您的错误记录器库中实现相同的接口.

例如,在Web应用程序中,您将使用:

WebErrorLogger error = new WebErrorLogger();
Run Code Online (Sandbox Code Playgroud)