C#の動的ロードメモ
クライアント(AppDomainTest)
class Program { static void call() { AppDomain ad = null; try { ad = AppDomain.CreateDomain("TEST"); var handle = ad.CreateInstance("ClassLibrary1", "ClassLibrary1.Class1"); int res = ((IClass1)handle.Unwrap()).test(); System.Console.WriteLine(res); } finally { AppDomain.Unload(ad); } } static void Main(string[] args) { while (true) { call(); System.Threading.Thread.Sleep(1000); } } } public interface IClass1 { int test(); }
サーバ(ClassLibrary1)
public class Class1 : MarshalByRefObject, AppDomainTest.IClass1
{
public int test()
{
return 10;
}
}
こんなかんじでクライアントを動かしたままサーバを書き換えたりできるんじゃないかな。