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