【发布时间】:2011-01-21 20:04:24
【问题描述】:
什么是 CLR 托管?这样做的用例是什么?
【问题讨论】:
标签: .net clr clr-hosting
什么是 CLR 托管?这样做的用例是什么?
【问题讨论】:
标签: .net clr clr-hosting
有关与 CLR v2(.NET 2.0、3.0 和 3.5)相关的 CLR 托管的信息,请参阅 here。有关 .NET 4.0 中较新的 CLR 托管 API 的信息,see here。
基本上,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 运行时的一部分 它比其他托管服务非常复杂。
【讨论】: