|
2008/04/15(Tue) 07:49:06 編集(投稿者)
> 調べてみると、Dictionaryはシリアライズできない?ようなので、 > とりあえず違う手は?という具合で上記のようなものを考えました。 シリアライズできないという表現は不適切です。 XmlSerializerではできませんが、BinaryFormatterではシリアライズできますので。
Dictionary<int, string> test = new Dictionary<int,string>(); test.Add(20, "aaa"); test.Add(15, "bbb");
MemoryStream ms = new MemoryStream(); BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(ms, test);
ms.Seek(0, SeekOrigin.Begin);
Dictionary<int, string> test2 = (Dictionary<int, string>)bf.Deserialize(ms);
> XNA Game StudioというのがあればDictionaryもシリアライズできちゃうようなことが > 書かれていましたが、そんなスゴイものを作るわけでもないので・・・。 XNA Game StudioとDictionaryは直接の関係はないのでは?
> IEnumerableを実装する方法でシリアライズ化ができるような記事もある(Dictionaryもできるのかな?)のですが、 > まだちょっと覚えきれていません。 Dictionary<TKey, TValue>はIEnumerableが実装されています。
[Serializable] [ComVisible(false)] [DebuggerDisplay("Count = {Count}")] public class Dictionary<TKey, TValue> : IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IDictionary, ICollection, IEnumerable, ISerializable, IDeserializationCallback
|