Сериализация EntitySet через сетевое удаленное взаимодействие - PullRequest
0 голосов
/ 14 июня 2010

У меня есть общий объект через сетевое удаленное взаимодействие. Проблема в том, что этот объект имеет некоторые атрибуты EntitySet и EntityRef. Когда я пытаюсь запустить программу, я получаю исключение, сообщающее, что EntitySet не помечен как Serializable. Если я отмечу его как Serializable, то все будет в порядке, но когда я пытаюсь получить доступ от внешнего к атрибуту, представленному EntitySet, я не могу его использовать.

Любое предложение будет оценено.

Спасибо заранее.

Кстати, кто-нибудь знает, как изменить стандартную двоичную сериализацию канала tcp?

Ответы [ 3 ]

0 голосов
/ 14 июня 2010

Я думаю, что здесь дело обстоит так: http://msdn.microsoft.com/en-us/library/bb546184.aspx

Есть пример, который касается EntitySet и сериализации.

0 голосов
/ 16 июня 2010

Я наконец достиг решения, позвольте мне объяснить:

В LinqToSQL для регистрации отношений между двумя таблицами (например, 1: M) вы должны объявить EntitySet на стороне M и EntityRef надругой.

В моем случае у меня есть закрытый атрибут, который обозначает EntitySet, и открытый метод доступа для его изменения.Учитывая, что Linq to Sql нуждается в явной сериализации декорации через DataContract (для классов) и DataMember (для атрибутов), проблема заключалась в том, что я декорировал публичный атрибут, но не приватный.(Я потерял много часов, но я многому научился сериализации)

0 голосов
/ 14 июня 2010

Попробуйте также пометить отдельные атрибуты и свойства как сериализуемые, это также даст вам доступ к этим свойствам.

примечание - все события в наборе также должны быть сериализованы.

...