我想知道,如果我有一個變量,例如,一個字符串,怎麼它的價值傳遞給我的新的應用領域:如何從一個應用程序域傳遞一個變量到另一個
static string _str;
static void Main(string[] args) {
_str = "abc";
AppDomain domain = AppDomain.CreateDomain("Domain666");
domain.DoCallBack(MyNewAppDomainMethod);
AppDomain.Unload(domain);
Console.WriteLine("Finished");
Console.ReadKey();
}
static void MyNewAppDomainMethod() {
Console.WriteLine(_str); //want this to print "abc"
}
謝謝
謝謝。現在我想知道如何將信息返回到我的主要應用程序域。也就是說,返回一個對象。謝謝! – 2009-08-09 05:42:55
還有另外一個問題。我看到AppDomainInitializerArguments只接受一個字符串數組。在這種情況下,我真的只想要字符串,所以沒有問題,但如果我想要其他類型的數據呢?沒有關係呢? – 2009-08-09 05:47:35
應用程序域不共享對象內存空間,因此傳遞對象需要某種類型的序列化。要返回一個對象,你可以在原有的AppDomain上進行DoCallBack操作,如果你能掌握它的話(儘管我看不到這樣做的簡單方法)。或者,你可以在應用程序域之間建立一些其他形式的進程間通道。一個命名管道。 – 2009-08-09 06:03:28