У меня есть сборка C#, которая обрабатывает XML-файл и в конце выводит результаты на консоль.
, например. Console.WriteLine(_header.ToString());
я могу загрузить эту библиотеку DLL в PowerShell и назвать правильный метод, как это:перенаправление вывода из внешней dll в powershell
[sqlproj_doctor.sqlprojDoctor]::ProcessXML($file) | out-file ./test.xml
Все хорошо.
Проблема начинается, когда я хочу перенаправить вывод. По какой-то причине stdout пуст. Что мне не хватает? Мне нужно продолжить обработку вывода этой DLL.
Примечание. Если я скомпилирую тот же код, что и исполняемый файл, он правильно заполняет стандартный выходной поток, и я могу перенаправить вывод.
другое примечание: в качестве обходного пути я изменил метод от void на строку и теперь могу управлять возвращаемой строкой.
действительно ли он использовать 'Console.WriteLine', а не что-то еще, чтобы отобразить текст на консоли ? – PetSerAl
Я вставил точную строку кода, которая используется в библиотеке классов ... – Mordechai
[расширьте 'TextWriter' и переопределите' WriteLine (string) ', затем назначьте Console] (http://stackoverflow.com/questions/ 6024172/is-it-possible-to-intercept-console-output) –