什么是 CLR 托管?那有什么用例?
3 回答
有关与 CLR v2(.NET 2.0、3.0 和 3.5)相关的 CLR 托管的信息,请参阅此处。有关 .NET 4.0 中较新的 CLR 托管 API 的信息,请参见此处。
基本上,CLR 充当一个可以由进程加载和“托管”的库。如果您愿意,您可以开发一个加载和托管 CLR 的应用程序;这将允许您的应用程序包含整个 CLR 虚拟机、加载程序集并在其中运行 .NET 托管代码。
例如,SQL Server 2008 可以做到这一点。您可以编写存储在 SQL Server 数据库中并在 SQL Server 数据库引擎中运行的 .NET 代码。SQL Server 托管 CLR 来实现这一点。
除了 Windows shell(通常的用户界面)之外的 CLR 主机可以为您的代码运行提供特定的上下文。这对于专门的应用程序或非常特殊的场景很有用。MSDN(上面的链接)对这些问题有一些指导。
CLR 托管是在您选择的进程中托管 .NET 公共语言运行时。
用例将是现有环境不适合您的要求的情况。现有的一些环境是 ASP.NET、WinForms、Windows Workflow Foundation 等。如果这些不符合您的要求,您可以自己托管。
CLR 托管是托管使用 .NET 应用程序。当您在本机进程中启动 .NET 运行时,该本机应用程序将成为运行时的主机。这使您可以将 .NET 功能添加到本机应用程序。
如果运行时正在运行,但尚未加载任何用户代码。一些内部线程调度程序和垃圾收集器肯定在运行,因为它们是 CLR 运行时的一部分,它比其他托管服务非常复杂。