Silverlight 4 и System.Runtime.Serialization - PullRequest
       23

Silverlight 4 и System.Runtime.Serialization

2 голосов
/ 01 сентября 2011

У меня есть проект Silverlight 4, который содержит несколько бизнес-объектов.Я добавил тестовый проект.Одним из тестов является сериализация бизнес-объектов из проекта Silverlight с использованием DataContractSerializer.Для ссылки DataContractAttribute я должен добавить ссылку на System.Runtime.Serialization.Однако в среде выполнения Silverlight и в среде выполнения .NET 4 проекта Test есть разные и явно несовместимые версии.

Какова лучшая стратегия сериализации объектов в проекте Silverlight, чтобы они могли использоватьсястандартная среда выполнения .NET 4?

Ответы [ 3 ]

1 голос
/ 01 сентября 2011

Для этой цели я бы использовал DataContractJsonSerializer . Это сериализует ваши бизнес-объекты в JSON. Поддерживается в Silverlight и .NET Framework начиная с 3.5.

Пример использования сериализатора можно найти здесь .

0 голосов
/ 01 сентября 2011

Сегодня утром я понял, что добавил ссылку на проект Silverlight из проекта, не относящегося к Silverlight, и VS предупредил о том, что это не очень хорошая идея, но все же разрешил запуск проекта, не относящегося к Silverlight.,Поскольку в каждом проекте упоминалась другая версия System.Runtime.Serialization, модульное тестирование было прервано с невозможностью загрузить эту DLL.

0 голосов
/ 01 сентября 2011

Если ваши объекты позволяют это (относительно ограничений, упомянутых ниже), попробуйте сериализатор, такой как protobuf-bet или одну из других реализаций буфера протокола.

http://code.google.com/p/protobuf-net/

Они накладывают некоторые ограничения на реализацию ваших бизнес-объектов (точнее, контрактов), например, что нулевые и пустые коллекции считаются эквивалентными названию одного примера.

...