我正在尝试将两个 List 反对序列化到 SQL Server。
这是我的序列化代码:
public static string SerializeToXml<T>(this T value)
{
var writer = new StringWriter(CultureInfo.InvariantCulture);
var serializer = new XmlSerializer(typeof(T));
serializer.Serialize(writer, value);
return writer.ToString();
}
当以下属性被序列化然后保存时,一切看起来都很好:
this.IPHostList = liveHostIps.SerializeToXml<List<string>>();
但是当我用自定义类尝试这个时,我没有得到任何数据。
this.MyClassList = MyClassContainer.SerializeTpXml<List<MyClass>>();
作为我在数据库中看到的失败项目的示例:
<ArrayOfMyClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
我从成功的项目中看到的一个例子:
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>192.168.1.4</string>
<string>192.168.1.5</string>
</ArrayOfString>
为了查看数据库中的数据,我尝试序列化为 XML,但如果需要,我可以转换为 base64。
关于为什么我的自定义类没有被保存的任何想法?我的自定义课程是:
[Serializable]
public class MyClass
{
public bool prop1{get;set;}
public Nullable<System.Guid> prop2 {get;set;}
public string prop3 {get;set;}
}
请注意,我没有收到任何代码错误——只是我存储在数据库中的 xml 数组不存在。