我想将一个类序列化为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