转换为托管宿主代码
更新:2007 年 11 月
加载并初始化公共语言运行库后,宿主必须执行从非托管代码到托管代码的转换,以执行托管宿主代码和用户代码。在 .NET Framework 的早期版本中,托管宿主代码通常在默认应用程序域中运行,但是 .NET Framework 2.0 版本提供了一个基类(即 AppDomainManager),用于实现自动加载到在进程中创建的每个应用程序域中的托管宿主代码。
宿主设置其应用程序域管理器,将它加载到默认应用程序域中,通过调用 IHostControl::SetAppDomainManager 方法 获取指向其接口的指针。返回的接口可用于执行托管代码。宿主的设计器定义了此接口,因此,该设计器确定在非托管宿主和应用程序域管理器中分别执行了多少代码。
说明: |
---|
在 .NET Framework 1.0 和 1.1 版本中,宿主通过调用 ICorRuntimeHost::GetDefaultDomain 方法 获取指向默认应用程序域的接口指针。此调用返回指向 AppDomain 类(表示默认应用程序域)的实例的 _AppDomain 接口指针。然后,宿主使用 AppDomain 类的 Load 方法,将宿主的托管部分加载到默认域中。 |