AppDomain

参考

    创建应用程序域 :
    class AppDomain1
    {
        public static void Main()
        {
             Console.WriteLine("Creating new AppDomain.");
             //创建应用程序域 
             AppDomain domain = AppDomain.CreateDomain("MyDomain");   
             //显示当前应用程序域的友好名称 
             Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
             //显示新建应用程序域的友好名称 
             Console.WriteLine("child domain: " + domain.FriendlyName);
        }
    }

 

    卸载应用程序域:
    class AppDomain2
    {
        public static void Main()
        {
             Console.WriteLine("Creating new AppDomain.");
             //创建应用程序域 
             AppDomain domain = AppDomain.CreateDomain("MyDomain", null);
             Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
             Console.WriteLine("child domain: " + domain.FriendlyName);
             // 卸载应用程序域
             AppDomain.Unload(domain);
             Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
             //下面这行代码会产生异常,因为domain对象被卸载了
             Console.WriteLine("child domain: " + domain.FriendlyName);
         }
    }

 

    将程序集加载到应用程序域中
    class AppDomain3
    {
        public static void Main(string[] args)
        {
            //取得当前应用程序域 
            AppDomain ad = AppDomain.CurrentDomain;
            //加载ClassLibrary831应用程序集,mydll.dll放到当前目录下
            Assembly a = ad.Load("ClassLibrary831");
            //取得应用程序集中的NewClass类型 
            Type t = a.GetType("ClassLibrary831.NewClass");
            //创建NewClass类型的实例 
            object o = Activator.CreateInstance(t);
            //给对象的属性赋值 
            PropertyInfo p1 = t.GetProperty("MyName");
            PropertyInfo p2 = t.GetProperty("MyInfo");
            p1.SetValue(o, "中国", null);
            p2.SetValue(o,"China",null);
            //调用对象的show方法 
            MethodInfo mi = t.GetMethod("show");
            mi.Invoke(o, null);
        } 
    } 

 

    创建一个新的应用程序域,并加载执行程序集
    class Test
    {
        static void Main(string[] args)
        {
            AppDomain currentDomain = AppDomain.CurrentDomain;
            Console.WriteLine(currentDomain.FriendlyName);
            //创建新的应用程序域 
            AppDomain secondDomain = AppDomain.CreateDomain("New AppDomain");
            //在新的应用程序域中加载执行AssemblyA.exe程序集 
            secondDomain.ExecuteAssembly("AssemblyA.exe");
        }
   }

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。