关于c#:确定库是否已加载到控制台,桌面或UWP应用中

Determine if library loaded into Console, Desktop, or UWP app

我有一个库,它对于控制台应用程序,桌面应用程序(例如WPF)和UWP应用程序的行为必须有所不同。

如何在运行时确定将我的库加载到哪种应用程序类型?

确定它是否是控制台应用程序似乎很容易:如何判断是否有控制台

对于UWP,我可能可以确定是否已加载WinRT。但是如何?

桌面应用程序具有哪些区别属性?


我最终定义了以下enum

1
2
3
4
5
6
public enum ExecutionMode
{
    Console,
    Desktop,
    UniversalWindowsPlatform
}

传递给我的库的主类的构造函数。这不是一个新主意,但是非常可靠(如果使用正确)。