我想知道,如果我有一个变量,例如,一个字符串,怎么它的价值传递给我的新的应用领域:如何从一个应用程序域传递一个变量到另一个
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