Как можно создать отдельное окно консоли для каждого домена приложения в консольном приложении .NET?

В моем консольном .NET-приложении есть несколько доменов приложений. Мое желание простое - окно консоли для каждого домена приложения.

Мотивация:

Приложение на самом деле представляет собой тестовую сборку MbUnit, а различные домены приложений - это хосты серверов, все упакованные в один процесс, но в разных доменах приложений для сокращения времени выполнения. Каждый сервер выводит на консоль, поэтому, когда консоль используется совместно с тестовой сборкой MbUnit, получается салат. Я хочу предоставить отдельное окно консоли для каждого домена серверного приложения.

Мы используем log4net для ведения журнала, поэтому мы можем регистрироваться в файлах и просматривать файлы позже, но на этом этапе гораздо удобнее вести журнал на консоли.

Спасибо.

ИЗМЕНИТЬ

Я решил свою конкретную проблему с помощью TelnetAppender. Я извлек из него и из ActivateOptions открыл клиент telnet. Для пользователя это выглядит так, как будто есть несколько окон консольного журнала.


person mark    schedule 21.12.2009    source источник
comment
Похоже на дубликат этого: stackoverflow.com/questions/671163/   -  person Vitaly    schedule 21.12.2009


Ответы (1)


У вас может быть только (технически) одна консоль для каждого приложения (не AppDomain).

При этом технически возможно смоделировать такое поведение. Это требует создания отдельного дочернего приложения и использования Pipes для передачи вывода каждой отдельной «консоли» в собственное дочернее приложение. Вот статья CodeProject, демонстрирующая этот подход (на C ++).

person Reed Copsey    schedule 21.12.2009