2013-06-19 28 views
0

我試圖使用YAXLib序列化一個對象。如果我直接序列化到string它工作正常,但如果我嘗試序列化到XmlWriter我得到一個空的XML。如何使用YAXLib序列化到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?我究竟做錯了什麼?

回答

1

xmlWriter.Flush()的調用可能會解決你的問題,因爲它沒有在我自己的測試:

serializer.Serialize(city, xmlWriter); 
xmlWriter.Flush(); 
+0

合作。請注意,使用框架的XmlSerializer時,不需要調用Flush()。我希望在YAXLib文檔中註明這一點。 – mmutilva

相關問題