Надгробие WP7 с Protobuf-net

Я использую protobuf-net в WP7 для сериализации своих данных.

Я инициализирую свои пользовательские типы при запуске приложения, но у меня есть большая проблема:

Если я запускаю свое приложение в фоновом режиме (захоронение) на несколько минут, когда приложение затем становится активным, возникает исключение, поскольку я не инициализировал типы.

У кого-нибудь есть решение этой проблемы? Спасибо!

РЕШЕНИЕ:

Я решил проблему следующим образом:

    private void Application_Activated(object sender, ActivatedEventArgs e)
    {
        if (!e.IsApplicationInstancePreserved)
        {
          // add types

          // RuntimeTypeModel.Default.Add(......);
        }
    }

person Stefano    schedule 23.10.2012    source источник
comment
он выдает исключения, так как я не инициализирую типы. Можете ли вы уточнить исключения, которые вы видите? полные сообщения об ошибках были бы идеальными   -  person Marc Gravell    schedule 23.10.2012
comment
Одной из причин этого может быть спящий режим wp7 вашего приложения после некоторого бездействия, может быть? Если это так, попробуйте подключиться к какому-либо событию восстановления (я не знал точного названия такого события) и перезапустите инициализацию ваших пользовательских типов.   -  person psulek    schedule 23.10.2012
comment
Поместите решение в ответ ниже, а не в качестве редактирования. Это полезная информация для других, и таким образом вопрос может быть помечен как ответ.   -  person ctacke    schedule 23.10.2012
comment
Опубликуйте свое решение в качестве ответа.   -  person Anton Sizikov    schedule 24.10.2012


Ответы (1)


Я решил проблему следующим образом:

    private void Application_Activated(object sender, ActivatedEventArgs e)
    {
        if (!e.IsApplicationInstancePreserved)
        {
           // add types
           RuntimeTypeModel.Default.Add(...);
        }
    }
person Stefano    schedule 24.10.2012
comment
Вам не нужно этого делать; если вы используете методы Serializer.*, то он будет автоматически добавлять вещи по мере необходимости. Тем не мение! Я также должен подчеркнуть, что это будет неоптимально, так как предполагается, что вы используете полный движок. Чтобы получить наилучшую производительность на WP7, рекомендуется использовать прекомпилятор и основной движок. Посмотрите, какие файлы мне нужны.txt - person Marc Gravell; 25.10.2012