.Net应用程序域(转)

分类:.Net
2012-09-04 14:25 阅读(?)评论(0)

using System;
using System.Text;

namespace Interface
{
    public interface ILoadXml
    {
        string LoadXmlInMemory();
    }
}

 


 

using System;
using System.Text;
using System.Xml;
using Interface;

namespace ClassLibrary
{
    public class MyClass : MarshalByRefObject, ILoadXml
    {
        XmlDocument xdoc = null;
        public string LoadXmlInMemory()
        {
            xdoc = new XmlDocument();
            xdoc.Load(@"d:\1.xml");
            return AppDomain.CurrentDomain.FriendlyName;
        }
    }
}

 


using System;
using System.Text;
using System.Reflection;
using Interface;

namespace ConsoleApplication13
{
    class Program
    {
        static void Main(string[] args)
        {
            Assembly a = Assembly.Load("ClassLibrary");
            AppDomain appDomain = AppDomain.CreateDomain("newDomain");
            AppDomain.MonitoringIsEnabled = true;
            MarshalByRefObject mbro = (MarshalByRefObject)appDomain.CreateInstanceAndUnwrap(a.FullName, "ClassLibrary.MyClass");
            appDomain.SetData("a1", mbro);
            ILoadXml proxy = (ILoadXml)appDomain.GetData("a1");
            string result = proxy.LoadXmlInMemory();
            //不卸载查看内存,卸载后再查看内存
            AppDomain.Unload(appDomain);
            GC.Collect();
            Console.ReadKey();
        }
    }
}

 
表  情:
加载中...
 

请各位遵纪守法并注意语言文明