Dictionary(Of TKey、TValue)クラスは、実際にはシリアライズ可能ですが、バイナリの意味です。残念ながら、XmlSerializationエンジンはIDictionaryを実装するものを処理することができず、それがアプリケーション設定での作業を妨げています。
通常これを回避するには、XmlSerializableでKey/Valueのペアを表す小さなクラスを作成します。私はそれらのキーと値のペアのコレクションをシリアライズすると思います。それは後でDictionary(Of TKey、TValue)に簡単に変換可能です。
2つの項目は名前と学生
Public Class Pair
' Actual property implementation omited for brevity
Public Property Student As Student
Public Property Name As String
End Class
た場合たとえば、その後、私はどのようにその使用に配列し、辞書
Public Function ToArray(map As Dictionary(Of Name,Student)) As Pair()
Return map.Select(Function(x) New Pair(x.Key,x.Value).ToArray()
End Function
Public Function ToMap(arr As Pair()) As Dictionary(Of Name, Student)
return arr.ToDictionary(Function(x) x.Name, Function(y) y.Student)
End Function
の間で前後に変換するには、以下を使用します設定としてのクラス?私はこれをできるだけ簡単にしたいと思っていますし、すべての(de /)シリアライズが自動的に行えるのであれば好きですし、My.Settings.Pair.Item( "key")を呼び出してその値を呼び出すだけです。私はこれを行うことができる方法はありますか? – DanO
値を返す既定のプロパティを作成します。 – Shimmy