Преобразование C # (приложение Windows) в приложение командной строки? - PullRequest
0 голосов
/ 23 сентября 2011

Я хочу преобразовать C # (приложение для платформы Windows) в версию командной строки.

Сценарий таков: я реализовал C # (приложение для Windows) в VS 2010. Выходные данные этого приложения:создать текстовый (лог) файл (в простом объяснении).

Теперь дело в том, что есть еще одно приложение, которое должно использовать мое приложение C #, вызывая мое приложение C # из командной строки во время выполнения.

Мой вопрос: как можно преобразовать уже существующее приложение C # в приложение командной строки, чтобы это приложение C # можно было вызывать из вызывающей (другой) программы?Есть один входной параметр, который нужно передать в командной строке моему приложению C #.И затем это приложение C # обработает данные в соответствии с входным параметром, а затем сгенерирует выходной файл журнала (txt).

Добавлено объяснение

Я действительно впечатлен решениями здесь.Еще немного опыта требуется от читателей.Я хочу, чтобы одно приложение работало как в качестве приложения командной строки, так и Windows-приложения (не забудьте упомянуть об этом раньше, извините!), В зависимости от количества входных параметров, передаваемых приложению.С этой точки зрения у меня есть два варианта реализации:

1) Создание отдельных функций для обоих приложений (командной строки и оконных форм).Вызывайте их согласно входному параметру pass.В каждой функции реализована полная функциональность каждого приложения, не мешая (или входя в код другого приложения).Также я смогу повторно использовать 2 основные функции, уже встроенные в приложение Windows-формы, в свое приложение командной строки после некоторого редактирования.

Недостаток: это сделает размер кода почти на 50% больше, чем в случае 2.

2) Вторая идея аналогична описанной здесь одним из экспертов, чтобы использовать те же приложения / функции для командной строки, что и для уже созданного приложения в форме Windows.Единственный способ отличить это посмотреть на проходной параметр ввода и решить соответственно, показывать ли интерфейс GUI или просто использовать ввод командной строки (и выполнять обработку).

Недостаток: этот случай сделает код немного запутанным и сложным в обслуживании / реализации из-за дополнительного добавления проверки для количества решений по входным параметрам.

Какой стратегии мне следует следовать для реализации?

Ответы [ 4 ]

2 голосов
/ 23 сентября 2011

Вам не нужно конвертировать его. Ваше приложение может оставаться приложением Windows. Вам просто нужно обработать аргументы командной строки.

Чтобы получить аргументы командной строки из любого места в приложении, просто используйте Environment.GetCommandLineArgs();

2 голосов
/ 23 сентября 2011

Конечно - просто:

  1. Создание нового проекта командной строки VS2010

  2. Теперь у вас будет "main ()"(или, в MS-Land, функция «_tmain ()») вместо корневого класса.

  3. Вырезать и вставить соответствующий код в «main ()» (или в функциювызывается main () или в класс, созданный из main () - на ваш выбор).

  4. Выполните миссию поиска и уничтожения, чтобы найти место, где вы вводите GUIи подставьте вместо них параметры командной строки.

  5. Разбор вашей командной строки.

Вуаля!Готово!

2 голосов
/ 23 сентября 2011

Вы хотите получить значение из командной строки, не является хорошей причиной для преобразования приложения winform в консольное приложение.Вы можете использовать,

string[] args = Environment.GetCommandLineArgs();

Однако вы можете изменить тип приложения, открыв project properties (щелкните правой кнопкой мыши по названию проекта) и изменив Output type.

1 голос
/ 23 сентября 2011

Просто не показывайте графический интерфейс, если вы передаете параметр, как при вызове из другой программы.

...