Dostęp Cross-appDomain do konsoli
Muszę odczytać wyjście standartowe z aplikacji (Core.exe), która działa w tym samym procesie, ale w innej aplikacji. Przekierowanie danych wyjściowych jest dość łatwe, gdy zajmuje się procesem, ale koncepcja appDomains jest dla mnie nowością.
Tak .. Zaczynam aplikację w isolataed appDomain w ten sposób
new HostedApp("core", "Core.exe").Run();
class HostedApp
{
internal string DomainName;
internal string AssemblyName;
internal AppDomain Ad;
internal Thread AppThrd;
public HostedApp(string a_domain, string a_assemblyName)
{
DomainName = a_domain;
AssemblyName = a_assemblyName;
Ad = AppDomain.CreateDomain(a_domain);
}
public void Run()
{
AppThrd = new Thread(RunApp);
AppThrd.Start();
}
private void RunApp()
{
try
{
Ad.ExecuteAssembly(AssemblyName);
}
catch(Exception _ex)
{
MessageBox.Show("Unhandled exception\n" + _ex);
}
}
}
Udało mi się przekierować Console.Out bieżącego procesu, zakładając, że jeśli aplikacje korzystają z tego samego procesu, będzie istniało pojedyncze wyjście standartowe.
Ale pokazuje tylko domyślne wyjście aplikacji appDomain.
Podsumowując, muszę uzyskać dostęp do innego wyjścia standardowego aplikacji appDomain. A może istnieje sposób na wywołanie metody znajdującej się w domyślnej aplikacji appDomain z „core” appDomain?