每个C#程序都有AppDomain吗?

dev*_*ull 9 .net c# appdomain

即使我们没有专门创建AppDomain,每个C#程序都有一个AppDomain吗?为什么需要它?我已经读过有关第三方程序集崩溃整个应用程序的情况,如果我们不将它们加载到单独的AppDomain中.我没有那么清楚.任何人都可以解释这一点.

Meh*_*ari 15

AppDomain它非常像一个进程,它是应用程序运行的基础结构.需要加载.NET程序集AppDomain才能运行.不需要将第三方程序集加载到单独的程序中AppDomains,但如果这样做,它会在它们之间提供隔离(如两个独立的进程),一个中的故障不会影响另一个.应用程序域可以独立卸载.

例如,SQL Server使用AppDomains在其进程中安全地加载CLR程序集.