chciałabym wiedzieć, czy mam zmienną, na przykład, ciąg, jak przekazać swoją wartość do mojej nowej aplikacji domeny:Jak przekazać zmienną z jednej domeny do innej aplikacji
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"
}
Dzięki
Dzięki. Teraz chciałbym wiedzieć, jak uzyskać informacje z powrotem do mojej głównej domeny aplikacji. Oznacza to, że zwracamy obiekt. Dzięki! –
I kolejne pytanie. Widzę AppDomainInitializerArguments akceptuje tylko tablicę ciągów. W tym przypadku naprawdę chcę tylko ciągi znaków, więc nie ma problemu, ale co, gdybym chciał innego rodzaju danych? Nic z tym nie zrobić? –
Domeny aplikacji nie współużytkują przestrzeni pamięci obiektu, więc przekazywanie obiektów dookoła wymaga jakiejś serializacji. Aby zwrócić obiekt, możesz użyć funkcji DoCallBack na oryginalnym appdomainie, jeśli możesz go zdobyć (nie widzę łatwego sposobu, aby to zrobić). Możesz też ustanowić inną formę kanału międzyprocesowego między domenami aplikacji, np. nazwany potok. –