2011-07-27 37 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屬性,因此不會有任何序列化。

你將不得不創建你自己的類,它暴露你想要序列化與讀/寫屬性的數據。