在VB.net中,我有一个矩阵对象,我试图在应用程序设置中保存,我没有正确恢复设置。
Private mMatrixHR As New Matrix
...
My.Settings.MatrixHR = mMatrixHR
...
My.Settings.Save()
当我查看user.config文件时,我看到:
<setting name="MatrixHR" serializeAs="Xml">
<value>
<Matrix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
</value>
</setting>
显然没有矩阵数据保存到文件中。
有谁能解释我做错了什么?
由于
Ĵ
答案 0 :(得分:0)
它的dot.net矩阵类
System.Drawing.Drawing2D.Matrix
由于我可以在应用程序设置配置中选择此类型,因此我认为它可以序列化。
Ĵ
答案 1 :(得分:0)
System.Drawing.Drawing2d.Matrix类不可序列化。调用
mMatrixHR.GetType().IsSerializable()
将返回False。
答案 2 :(得分:0)
类必须可序列化为XML才能保存在App Settings中。要进行XML可序列化,类必须具有读/写属性(只有那些属性将持久化为XML)。由于Matrix类只具有ReadOnly属性,因此没有任何序列化。
您必须创建自己的类,使用读/写属性公开要序列化的数据。