Возврат данных из консольного приложения

Можно ли как-то вернуться из Консольного приложения "Объект"? Xml или Json представление объекта. Я знаю, что CLR будет искать статическую функцию точки входа, которая должна быть недействительной или целочисленной во время выполнения консольного приложения.

Но есть ли какой-то общий способ как-то вернуть объект? Стандартный поток? Любые идеи?


person StringBuilder    schedule 21.04.2013    source источник
comment
вы ищете Console.Out!Играйте с Console классом, чтобы узнать больше!   -  person Anirudha    schedule 21.04.2013


Ответы (2)


Вы можете записать свой объект в сериализованной форме на консоль. И другое приложение может прочитать этот вывод консоли и децентрализовать объект.

Что-то вроде:

Приложение1:

 Console.Write(Json.Serialize(obj));

Приложение2:

var p = Process.Start("app1.exe");
var obj = Json.Deserialize(p.StandardOutput.ReadToEnd());
person alex    schedule 21.04.2013
comment
Это обычный способ сделать это, я имею в виду, что это не обходной путь, верно? Это было решение, которое я думал сделать, но я сомневался в этом. - person StringBuilder; 21.04.2013
comment
Сериализация в JSON может быть просто для удобства, но обычно чтение из стандартного вывода другой программы является типичным средством связи между консольными приложениями. - person alex; 21.04.2013

Вы можете перенаправить либо на файл, либо на другой объект потока памяти. Оттуда вы можете создать свой объект XML или JSON. См. эту ссылку: http://www.dotnetperls.com/redirectstandardoutput

person Santosh Panda    schedule 21.04.2013