C#面试题更新 2026-08-05

请解释 .NET 中 AppDomain 的概念及其主要用途,包括它在应用程序隔离和安全性方面的作用。

技术原理C#.NET

考察说明

考查对 .NET 应用程序域(AppDomain)概念及其在隔离和安全性方面作用的理解。

回答思路

  1. 【回答框架 1】AppDomain(应用程序域)是 .NET 中用于隔离应用程序的边界,它提供了一种轻量级的进程内隔离机制,使得在一个进程内可以运行多个独立的应用,每个应用域都有自己的安全边界、配置和加载的程序集。这种隔离降低了不同应用之间的相互干扰。
  2. 【回答框架 2】AppDomain 的主要作用包括:隔离应用程序,使得在一个域中发生的错误不会影响其他域;支持软件中的插件或模块动态加载和卸载,因为 AppDomain 可以被卸载;提供安全边界,通过权限集控制域内代码的执行权限,增强安全性。
  3. 【回答框架 3】在 .NET Framework 中,AppDomain 是实现隔离和动态扩展的关键机制。在 .NET Core 和 .NET 5+ 中,虽然不再支持创建多个 AppDomain,但引入了 AssemblyLoadContext 来实现类似的程序集隔离和动态加载功能,但无法实现完全的应用程序域隔离。
  4. 【关键点 1】AppDomain 提供进程内隔离,降低应用间干扰。
  5. 【关键点 2】AppDomain 支持动态加载和卸载程序集。
  6. 【关键点 3】AppDomain 通过权限集控制代码执行权限,增强安全性。
  7. 【关键点 4】在 .NET Core/.NET 5+ 中,AppDomain 功能由 AssemblyLoadContext 替代部分功能。
  8. 【易错点 1】不能将 AppDomain 隔离等同于进程隔离,它是在进程内的逻辑边界。
  9. 【易错点 2】在 .NET Core/.NET 5+ 中,不能创建新的 AppDomain,需要避免使用已被替换的 API。
  10. 【易错点 3】AppDomain 并不能保证业务幂等,它只提供隔离和安全性,不处理业务逻辑的幂等性。