2016-07-27 7 views
2

次のクラスをuser.configに保存しようとしていますが、何が間違っているのか分かりません。ディクショナリオブジェクトはクラスのシリアライズを許可していませんか?VB.netシリアル化の問題

<Serializable()>Public Class RunInformation 
    Public ExecutablePath As String 
    <NonSerialized()> Public Settings As Dictionary(Of String, String) 
    <NonSerialized()> Public ProcessId As Integer 
    <NonSerialized()> Public Handle As IntPtr 
    <NonSerialized()> Public TabPageHandle As IntPtr 

    Public Sub New() 
     ExecutablePath = "" 
     Settings = New Dictionary(Of String, String) 
    End Sub 
End Class 

省:

Private Sub Form1_Closing(sender As Object, e As EventArgs) Handles MyBase.Closing 
    my.Settings.Setting = New RunInformation() 
    My.Settings.Save() 
End Sub 

XMLファイル:

<userSettings> 
    <BotManager.My.MySettings> 
     <setting name="Setting" serializeAs="Xml"> 
      <value /> 
     </setting> 
    </BotManager.My.MySettings> 
</userSettings> 
+0

代わりに属性System.Xml.Serialization.XmlIgnoreを使用してください。 – Plutonix

+0

私はその設定を以下のように設定しています:http://imgur.com/a/0PRco – chancity

+0

'RunInformation.Settings'は' Dictionary 'ですのでXMLシリアライズ可能ではありません – Plutonix

答えて

0

問題は、あなたがXMLとしての情報をシリアライズが、バイナリシリアル制御属性を使用していることです。

は、[設定] UIエディタを開くと、標準のXMLシリアライザは、彼らと仕事いけないのでリストされて何の辞書がない