Смотрите на Усовершенствованное Руководство по созданию сценариев Bash для большого количества мудрости на сценариях оболочки - не просто Bash, также.
не слушают людей, говорящих Вам смотреть на другой, возможно более сложные языки. Если сценарии оболочки удовлетворяют Ваши потребности, используйте это. Вы хотите функциональность, не причудливость. Новые языки обеспечивают ценные новые навыки для Вашего резюме, но это не помогает, если у Вас есть работа, которая должна быть сделана, и Вы уже знаете оболочку.
, Как указано, нет большого количества "лучших практик" или "шаблонов разработки" для сценариев оболочки. Различное использование имеет различные инструкции и предвзятость - как любой другой язык программирования.
Вы не показали, что делает GetXmlWriter ... но пробовали ли вы просто очистить писатель?
xmlWriter.Flush();
В качестве альтернативы оберните XmlWriter
в другой , используя Оператор
:
using (var stream = new MemoryStream())
{
var xmlReader = new XDocument(xml).CreateReader();
xmlReader.MoveToContent();
using (var xmlWriter = GetXmlWriter(stream))
{
xmlWriter.WriteNode(xmlReader, true);
}
return stream.ToArray();
}
Возможно, вы захотите сделать то же самое для XmlReader
, хотя в данном конкретном случае я не думаю, что вам это особенно нужно.
Сказав все это, Я не совсем понимаю, зачем вы вообще используете XmlReader
. По какой причине вы не можете просто найти соответствующий XElement
и использовать XElement.WriteTo (XmlWriter)
? Или, если вы пытаетесь скопировать весь документ, просто используйте XDocument.WriteTo (XmlWriter)