什么是CLR托管?

时间:2010-02-27 17:10:17

标签: .net clr clr-hosting

什么是CLR托管?那是什么用例?

3 个答案:

答案 0 :(得分:27)

有关CLR托管与CLR v2(.NET 2.0,3.0和3.5)相关的信息,请参阅here。有关.NET 4.0中较新的CLR托管API的信息,请see here

基本上,CLR充当可以由进程加载和“托管”的库。如果您愿意,您可以开发一个加载和托管CLR的应用程序;这将允许您的应用程序包含一个完整的CLR虚拟机,加载程序集并在其中运行.NET托管代码。

例如,SQL Server 2008就可以做到这一点。您可以编写存储在SQL Server数据库中的.NET代码,并在SQL Server数据库引擎中运行。 SQL Server正在托管CLR以实现这一目标。

Windows shell(通常的用户界面)以外的CLR主机可以为您的代码提供运行的特定上下文。这对于专门的应用程序或非常特殊的场景非常有用。 MSDN(上面的链接)对这些问题有一些指导。

答案 1 :(得分:11)

CLR Hosting正在您选择的过程中托管.NET公共语言运行时。

用例可能是现有环境不符合您要求的情况。一些现有的环境是ASP.NET,WinForms,Windows Workflow Foundation等。如果这些环境不符合您的要求,您可以自己托管。

答案 2 :(得分:2)

CLR Hosting是托管用途.NEt应用程序。当您在本机进程内启动.NET运行时时,该本机应用程序将成为运行时的主机。这使您可以将.NET功能添加到本机应用程序中。

如果运行时正在运行,但尚未加载任何用户代码。一些内部线程调度程序和垃圾收集器肯定在运行,因为它们是CLR运行时的一部分 它比其他托管服务非常复杂。