//第一个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);