У меня есть функция, создающая некоторый XmlDocument:
public string CreateOutputXmlString(ICollection<Field> fields)
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.Encoding = Encoding.GetEncoding("windows-1250");
StringBuilder builder = new StringBuilder();
XmlWriter writer = XmlWriter.Create(builder, settings);
writer.WriteStartDocument();
writer.WriteStartElement("data");
foreach (Field field in fields)
{
writer.WriteStartElement("item");
writer.WriteAttributeString("name", field.Id);
writer.WriteAttributeString("value", field.Value);
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.Flush();
writer.Close();
return builder.ToString();
}
Я установил кодировку, но после создания XmlWriter у нее есть кодировка utf-16. Я знаю это, потому что строки (и StringBuilder, я полагаю) закодированы в utf-16, и вы не можете его изменить.
Итак, как я могу легко создать этот xml с атрибутом кодировки, установленным на "windows-1250"? он даже не должен быть закодирован в этой кодировке, он просто должен иметь указанный атрибут.
edit: он должен быть в .Net 2.0, поэтому никакие новые элементы структуры не могут быть использованы.