2011-07-27 41 views
1

在VB.net中我有一个矩阵对象,我试图保存在应用程序设置中,并且我没有正确恢复设置。保存矩阵类到应用程序设置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

您的Matrix类必须是Xml Serializable。你可以发布课程的内容吗? –

+0

矩阵中的哪些值是您要保存的? –

+0

只是矩阵元素。我现在看到的方法是创建一个包含用于生成矩阵和序列化的转换,缩放和旋转参数的类。 – Jerry

回答

0

其dot.net矩阵类

System.Drawing.Drawing2D.Matrix 

因为我可以选择这种类型的应用程序设置的配置,我曾以为这将是序列化。

J

+0

添加这个作为你的问题的评论。没有答案。 –

0

System.Drawing.Drawing2d.Matrix类不可序列化。调用

mMatrixHR.GetType().IsSerializable() 

将返回False。

0

一个类必须可序列化为XML才能保存在应用程序设置中。要成为XML序列化类,一个类必须具有读/写属性(只有那些属性将持久化为XML)。由于Matrix类只具有ReadOnly属性,因此不会有任何序列化。

你将不得不创建你自己的类,它暴露你想要序列化与读/写属性的数据。