0
我有一個處理XML序列化的類。XmlSerializer和類型
public class DB
{
public List<Connection> lstConnections { get; set; }
static string sRootAttribute = "Connections";
public static DB LoadFromFile(string path)
{
FileStream fs = null;
DB db = null;
try
{
fs = File.Open(path, FileMode.Open);
var serializer = new XmlSerializer(typeof(DB), new XmlRootAttribute(sRootAttribute));
db = (DB)serializer.Deserialize(fs);
}
catch
{
}
if (fs != null)
{
fs.Close();
}
return db;
}
public static void SaveToFile(string path, object objData)
{
var fs = File.Open(path, FileMode.Create);
var serializer = new XmlSerializer(objData.GetType(), new XmlRootAttribute(sRootAttribute));
try
{
serializer.Serialize(fs, objData);
}
catch
{
}
fs.Close();
}
}
的LoadFromFile
方法有些通用的,因爲它不考慮序列化的數據類型。
但是,SaveToFile
對要序列化的對象執行GetType
。
因此,當我試圖用LoadFromFile
反序列化文件時,我遇到了問題。我沒有得到任何例外,但lstConnections
是空的。
由'Xsd2Code'生成的代碼有一堆[控制XML序列化的屬性](http://msdn.microsoft.com/en-us/library/83y7df3e(v = vs.110).aspx )。我想串行器依賴於一些像'System.Xml.Serialization.XmlArrayAttribute'這樣的屬性來完成這項工作。 – kennyzx 2014-10-11 13:17:39