c# appdomain如何加載程序集

c#
小樊
92
2024-07-26 01:36:12

在C#中,可以使用AppDomain類來(lái)加載程序集。以下是一個(gè)簡(jiǎn)單的示例代碼,演示如何在AppDomain中加載程序集:

using System;
using System.Reflection;

class Program
{
    static void Main()
    {
        // 創(chuàng)建一個(gè)新的AppDomain
        AppDomain domain = AppDomain.CreateDomain("MyDomain");

        // 加載程序集到新的AppDomain
        Assembly assembly = domain.Load("MyAssembly");

        // 在新的AppDomain中執(zhí)行程序集中的代碼
        Type type = assembly.GetType("MyNamespace.MyClass");
        MethodInfo method = type.GetMethod("MyMethod");
        object instance = Activator.CreateInstance(type);
        method.Invoke(instance, null);

        // 卸載AppDomain
        AppDomain.Unload(domain);
    }
}

在上面的示例中,我們首先創(chuàng)建了一個(gè)新的AppDomain,然后使用Load方法加載了一個(gè)名為"MyAssembly"的程序集。接下來(lái),我們通過(guò)反射獲取了程序集中的一個(gè)類和一個(gè)方法,并執(zhí)行了該方法。最后,我們使用Unload方法卸載了AppDomain。

請(qǐng)注意,AppDomain提供了一種在應(yīng)用程序中隔離和管理程序集的方式,可以在需要時(shí)動(dòng)態(tài)加載和卸載程序集,以確保應(yīng)用程序的穩(wěn)定性和安全性。

0