Как сериализовать экземпляр класса, содержащий закрытые члены? - PullRequest
5 голосов
/ 05 мая 2011

Я хочу сериализовать экземпляр класса в IsolatedStorage. Я пробовал SharpSerialiser, но он может сериализовать только открытые свойства. Но у моего класса есть закрытые члены (без свойств), статические члены и т. Д. В DataContractSerializer также я думаю, что мы можем сериализовать только публичных членов. Так есть ли способ сериализовать его?

Спасибо и С уважением vaysage

Ответы [ 2 ]

6 голосов
/ 05 мая 2011

Я предпочитаю настраиваемую двоичную сериализацию, которая гарантирует, что вы сериализуете только то, что вам действительно нужно, является самым быстрым методом сериализации и позволяет вам сериализовать закрытые члены, если вам действительно это нужно.Кевин Маршалл (Kevin Marshall) имеет отличный пост по сравнению сериализации, который охватывает варианты и показатели производительности: http://blogs.claritycon.com/kevinmarshall/2010/11/03/wp7-serialization-comparison/

6 голосов
/ 05 мая 2011

Silverlight имеет более жесткую модель безопасности отражения и не поддерживает обычные приемы, используемые для обхода этого.AFAIK, вы ограничены общедоступными членами.

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

Тем не менее, IMO лучше подходить к созданию вторичной модели класса DTO;это изменчиво и имеет общедоступные свойства с get и set.Большинство сериализаторов будут довольны этим, и вы всегда можете предоставить оператор преобразования между вашей моделью DTO и вашей первичной объектной моделью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...