我想將一個類序列化爲xml並將其存儲在數據庫的字段中。我可以用這個序列化:將C#類序列化爲xml。將XML作爲字符串存儲在SQL Server中,然後再恢復類
StringWriter sw = new StringWriter();
XmlSerializer xmlser = new XmlSerializer(typeof(MyClass));
xmlser.Serialize(sw, myClassVariable);
string s = sw.ToString();
sw.Close();
這是行得通的,但它有命名空間。
<.... xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
這些會減慢反序列化的速度,因爲它會對那些進行驗證並驗證XML嗎?我被創建一個空白XmlSerializerNamespaces並使用該序列化擺脫了命名空間的,但隨後的XML仍然有大約整型變量的命名空間:
<anyType xmlns:q1="http://www.w3.org/2001/XMLSchema"
d3p1:type="q1:int"
xmlns:d3p1="http://www.w3.org/2001/XMLSchema-instance">
3
</anyType>
我的問題是:是否有必要對反序列化,如果namesapces不,如何擺脫它們?我該如何告訴它字段是整數所以它並不放在「anytype類型」
感謝, 布賴恩
如果您使用SQL Server 2005或更高,你應該使用XML列。 – 2010-04-07 06:37:52