//第一个exe 应用 域 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace console { class Program { static void Main(string[] args) { try { for (int i = ; i < 10; i++) { TestStatic.count *= i; Console.WriteLine("我最喜欢hello world现在的值是:" + TestStatic.count); } } catch (Exception e) { Console.WriteLine("错误消息是:" + e.Message); } } } public class TestStatic:MarshalByRefObject,ICollection { public static int count = 1; public void CopyTo(Array array, int index) { throw new NotImplementedException(); } public int Count { get { count = count * 5; return count; } } public bool IsSynchronized { get { throw new NotImplementedException(); } } public object SyncRoot { get { throw new NotImplementedException(); } } public IEnumerator GetEnumerator() { throw new NotImplementedException(); } } } //在另一个执行上面一个中得域中得类。来达到相互通讯 AppDomainSetup info2 = new AppDomainSetup(); info2.LoaderOptimization = LoaderOptimization.SingleDomain; AppDomain domain2 = AppDomain.CreateDomain("console", null, info2); ObjectHandle objHandle = domain2.CreateInstance("console", "console.TestStatic"); domain2.ExecuteAssembly(@"console.exe"); ICollection obj = objHandle.Unwrap() as ICollection; int i = obj.Count; Console.WriteLine(i); AppDomain.Unload(domain2);