C# Преобразование FileStream.WriteLine для перехода к MemoryStream

Я написал некоторый код в консольной программе и протестировал с файлами. Теперь я хочу перенести его на BizTalk Pipeline Component, который реализует определенный интерфейс. Я не знал, что это .Write а также .WriteLine методы из файла в поток памяти были такими разными. Я думал, что смогу обменять свои объекты. Здесь нет .WriteLine метод, а метод.Write требует смещения и байтов (дополнительные параметры).

Итак, что является лучшим способом изменить мой проверенный код для записи в поток памяти, учитывая, что у меня много операторов.WriteLine. Я мог бы сначала написать в StringBuffer, но потом я думаю, что это разрушит концепцию потоковой передачи (то есть будет иметь весь документ в памяти одновременно).

// This is how I used the streams in the Console program 
//FileStream originalStream = File.Open(inFilename, FileMode.Open);
//StreamWriter streamToReturn = new StreamWriter(outFilename);

// This is how to get the input stream in the BizTalk Pipeline Componenet 
System.IO.Stream originalStream = pInMsg.BodyPart.GetOriginalDataStream();

MemoryStream streamToReturn = new MemoryStream();
streamToReturn.WriteLine("<" + schemaStructure.rootElement + ">");

Там гораздо больше кода не показано здесь. Выше это просто подготовить почву для того, что я сделал.

1 ответ

Решение

Используйте StreamWriter, который вы можете использовать для вызова WriteLine.

MemoryStream streamToReturn = new MemoryStream();
var writer = new StreamWriter(streamToReturn);
writer.WriteLine("<" + schemaStructure.rootElement + ">");
Другие вопросы по тегам