@Tumkasad

Как открывать файлы .cs в пользовательском интерфейсе?

Есть программа, пользовательский интерфейс41dfeaff34ca498582d63a01122f2035.png
Тут есть 4 формы и в них пользователи вводят переменные.
И есть консольное приложение, которое считает формулы по данным переменным.
И так вопрос, как сделать так, чтобы в самом интерфейсе работала консольная программа, так чтобы она считала все, после вывода Form4 (так называется) и чтобы она видела переменные.
И как сделать так, чтобы все формы видели переменные других форм (некие глобальные переменные).
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
arusef
@arusef
Novice .NET dev
Если у вас консольное приложение спроектировано правильно и умеет принимать параметры командной строки, то можно воспользоваться методами System.Diagnostics.Process.Start, передать параметры в новый процесс, перенаправить поток вывода и считать оттуда информацию.

Если же нет, и переписать консольную программу нет возможности (а спецификация требует использования именно
этой сборки), тогда можно воспользоваться System.Reflection.Assembly, подгрузить инстанс класса основной программы, вызвать метод Main (или любой другой) и передать список аргументов. Кстати, в данном случае очень неплохо может облегчить жизнь тип dynamic, так как многие вещи он сам умеет распознавать. У такого подхода много минусов, но он рабочий, если нужна динамическая подгрузка.

Ну и, наконец, самый разумный способ: просто переписать весь код основной логики из консольной программы в какую-нибудь отдельную .dll, подключить её к своему проекту и использовать методы и сущности напрямую. Если исходного кода нет - можно воспользоваться Reflector'ом, например. (Причём это если нельзя дотнетовский .exe подключить сразу, без переписывания. Но с таким я не сталкивался.)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы