2016-07-27 2 views
2

J'essaie de sauvegarder la classe suivante dans user.config et je ne suis pas sûr de ce que je fais de mal. L'objet dictionnaire ne permet-il pas la sérialisation de la classe?VB.net Sérialisation Problème

<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 

Enregistrement:

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

fichier XML:

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

Lorsque vous ouvrez l'interface utilisateur Paramètres de l'éditeur il n'y a pas Dictionnaire parce sérialiseurs la liste XML standard ne travaillent pas avec eux. – Plutonix

+0

J'ai le paramètre configuré comme suit: http://imgur.com/a/0PRco – chancity

+0

Encore, 'RunInformation.Settings' n'est pas XML sérialisable parce que c'est un' Dictionnaire ' – Plutonix

Répondre

0

Le problème est que votre sérialisation l'info en XML, mais en utilisant les attributs de contrôle de sérialisation binaires.

Utilisez l'attribut System.Xml.Serialization.XmlIgnore au lieu