Записать двоичные данные в стандартный вывод в c #? - PullRequest
4 голосов
/ 30 октября 2009

Я пытаюсь написать быстрое приложение cgi на c #. Мне нужно попасть в поток stdout и записать некоторые двоичные данные. Единственное, что я могу найти для этого, - это Console.Write, который принимает текст. Я также попробовал

Process.GetCurrentProcess().StandardOutput.BaseStream.Write 

, который тоже не работает. Это вообще возможно?

Ответы [ 2 ]

9 голосов
/ 19 ноября 2014

Ничего себе, облом на этот вопрос не было ответа в течение 5 лет. Просмотрено 1800 раз.

OpenStandardOutput () существует с .Net 4.0

using (Stream myOutStream = Console.OpenStandardOutput())
{
    myOutStream.Write(buf, 0, buf.Length);
}
2 голосов
/ 30 октября 2009

Примерно так (очень быстрый пример, написанный в блокноте):

using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

[Serializable]
public class MyObject {
    public int n1 = 0;
    public int n2 = 0;
    public String str = null;
}

public class Example
{
    public static void Main()
    {
        MyObject obj = new MyObject();
        obj.n1 = 1;
        obj.n2 = 24;
        obj.str = "Some String";
        BinaryFormatter formatter = new BinaryFormatter();

        StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());
        sw.AutoFlush = true;
        Console.SetOut(sw);

        formatter.Serialize(sw.BaseStream, obj);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...