1
我具有存储在SQL Server作为xml
类型,这是一个int值SqlXml
当在C#反序列化到对象
在数据库中的值检索到:
<int>1234</int>
我怎样才能反序列化该值到价值1234
的int
?
我具有存储在SQL Server作为xml
类型,这是一个int值SqlXml
当在C#反序列化到对象
在数据库中的值检索到:
<int>1234</int>
我怎样才能反序列化该值到价值1234
的int
?
假设SqlXml
对象包含问题中提到的确切内容,您可能需要使用以下辅助方法。应该适用于以这种方式序列化的任何类型,即使是复杂的对象。
static T GetValue<T>(SqlXml sqlXml)
{
T value;
// using System.Xml;
using (XmlReader xmlReader = sqlXml.CreateReader())
{
// using System.Xml.Serialization;
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
value = (T) xmlSerializer.Deserialize(xmlReader);
}
return value;
}
实施例的情况下:
using (MemoryStream stream = new MemoryStream())
using (XmlWriter writer = new XmlTextWriter(stream, Encoding.ASCII))
{
writer.WriteRaw("<int>123</int>");
writer.Flush();
stream.Seek(0, SeekOrigin.Begin);
using (XmlReader reader = new XmlTextReader(stream))
{
SqlXml sqlXml = new SqlXml(reader);
int value = GetValue<Int32>(sqlXml);
Debug.Assert(123 == value);
}
}
看到这个[链接](http://stackoverflow.com/questions/13562635/deserialize-xml-object-in-t-sql) – Rajesh 2014-09-26 07:59:45