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

    arusef
    @arusef
    Novice .NET dev
    Если у вас консольное приложение спроектировано правильно и умеет принимать параметры командной строки, то можно воспользоваться методами System.Diagnostics.Process.Start, передать параметры в новый процесс, перенаправить поток вывода и считать оттуда информацию.

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

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