Връщане на данни от конзолно приложение

Възможно ли е по някакъв начин да се върне от конзолното приложение "Object"? Xml или Json представяне на обекта. Знам, че CLR ще търси статична функция на входна точка, която трябва да бъде void или int по време на изпълнение на приложението Console.

Но има ли някакъв общ начин за връщане на обект по някакъв начин? Stdout поток? Някакви идеи?


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