ich eine Variable von einer Anwendungsdomäne passieren würde gerne wissen, ob ich eine Variable haben, beispielsweise eine Zeichenfolge, wie ihr Wert auf meine neue Anwendungsdomäne weitergeben müssen:Wie andere
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"
}
Danke
Dank. Jetzt würde ich gerne wissen, wie ich Informationen zu meiner Hauptanwendungsdomäne zurückbekomme. Das heißt, ein Objekt zurückgeben. Vielen Dank! –
Und eine andere Frage. Ich sehe AppDomainInitializerArguments akzeptiert nur ein Array von Zeichenfolgen. In diesem Fall möchte ich wirklich nur Strings, also gibt es kein Problem, aber was ist, wenn ich andere Daten haben wollte? Nichts zu tun? –
App-Domänen teilen keinen Objektspeicherplatz. Daher müssen Objekte durchgelassen werden, um eine Serialisierung zu ermöglichen. Um ein Objekt zurückzugeben, können Sie DoCallBack auf der ursprünglichen appdomain verwenden, wenn Sie es in die Finger bekommen könnten (ich sehe jedoch keinen einfachen Weg dazu). Alternativ könnten Sie eine andere Form von Interprozesskanal zwischen den Anwendungsdomänen einrichten, z. eine Named Pipe. –