我试图使用YAXLib来序列化一个对象。如果我直接序列化到一个string,它可以很好地工作,但是如果我试图序列化到一个XmlWriter,我会得到一个空的XmlWriter。
这是一个示例类声明(没有什么奇怪的,对吗?):
public class City
{
public string Name { get; set; }
public long Population { get; set; }
}这就是我正在做的序列化它的工作:
/* Object to serialize */
var city = new City() { Name = "Montevideo", Population = 1500000 };
var serializer = new YAXSerializer(typeof(City));
/* Serialize to XmlWriter */
var stringWriter = new StringWriter();
var xmlWriter = XmlWriter.Create(stringWriter);
serializer.Serialize(city, xmlWriter);
var result1 = stringWriter.ToString(); // result1 is ""
/* Serialize to String */
var result2 = serializer.Serialize(city); // result2 is "<City>...</City>"我需要使用XmlWriter方法,因为我希望通过XmlWriterSettings (省略xml声明、避免缩进、控制新行处理、.)来控制结果xml的几个方面。
有人用YAXLib成功地序列化到XmlWriter了吗?我做错什么了?
发布于 2013-06-19 23:14:32
调用xmlWriter.Flush()可以解决您的问题,就像它在我自己的测试中所做的那样:
serializer.Serialize(city, xmlWriter);
xmlWriter.Flush();https://stackoverflow.com/questions/17194531
复制相似问题