Unity 3.0: сериализация Dictionary<>

Программирование на Юнити.

Unity 3.0: сериализация Dictionary<>

Сообщение gnoblin 30 сен 2010, 16:05

В новом дотнете (и новой версии юнити) нормально сериализовываются\десериализовываются словари (Dictionary).
Ура!

В .net 2.0 (и Unity 2.6.1) приходилось превращать словарь в два списка и потом уже сериализовывать.

Пример счастья:

Синтаксис:
Используется csharp
[System.Serializable]
public class DictTest
{
    public Dictionary<string, bool[]> dict;

    //мега конструктор =В
    public DictTest()
    {
        dict = new Dictionary<string, bool[]>();
        dict.Add("balls",new bool[]{true,true,false});
        dict.Add("something", new bool[] { true, false, true, false });

        string json = JsonFx.Json.JsonWriter.Serialize(dict);

        string mydocpath = Application.dataPath;
        StringBuilder sb = new StringBuilder();
        sb.Append(json);

        using (StreamWriter outfile = new StreamWriter(mydocpath + @"\DictTest.txt"))
        {
            outfile.Write(sb.ToString());
        }
    }
}


При запуске вызываем
Код: Выделить всё
DictTest dict = new DictTest();


Результат:

{"balls":[true,true,false],"something":[true,false,true,false]}
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Unity 3.0: сериализация Dictionary<>

Сообщение Mr_Anderson 01 окт 2010, 08:43

По-моему бинарная сериализация Dictionary<> и в 2.6 (net 2.0) без проблем, с xml надо было шаманить.
Mr_Anderson
UNIт
 
Сообщения: 143
Зарегистрирован: 16 апр 2009, 13:32

Re: Unity 3.0: сериализация Dictionary<>

Сообщение Neodrop 01 окт 2010, 11:42

Имеется в виду сохранение словаря в компоненте, а не в XML или где-то ещё.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Unity 3.0: сериализация Dictionary<>

Сообщение gnoblin 02 окт 2010, 01:31

Не, я как раз про сериализацию в файл.
Возможно косяк был только с xml, тут не уверен.

В данном случае я сохраняю в json :).
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Unity 3.0: сериализация Dictionary<>

Сообщение Neodrop 02 окт 2010, 13:22

Ишь ты. Значит я налажал ;) [curved_hands]
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Unity 3.0: сериализация Dictionary<>

Сообщение gnoblin 04 окт 2010, 14:59

Блин, что-то нормально сериализовываться у меня хотят только словари с ключом типа string :(
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Unity 3.0: сериализация Dictionary<>

Сообщение Neodrop 04 окт 2010, 15:18

У меня собственный класс - сериализатор. НЕ люблю, когда за меня кто-то что-то делает ;)
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10