我通过网络远程处理有一个共享对象。问题是该对象具有一些EntitySet和EntityRef属性。当我尝试运行程序时,我得到一个异常,告诉我EntitySet没有标记为Serializable。如果我将它标记为Serializable一切似乎都没问题,但是当我尝试从outity访问EntitySet所代表的属性时,我无法使用它。
任何建议都将受到赞赏。
提前致谢。
BTW,有谁知道如何更改tcp通道的默认二进制序列化?答案 0 :(得分:0)
尝试将各个属性和属性标记为可序列化,这也可以让您访问这些属性。
注意事项是Set上的所有事件也需要序列化。
答案 1 :(得分:0)
我认为事情就在这里: http://msdn.microsoft.com/en-us/library/bb546184.aspx
有一个处理EntitySet和序列化的例子。
答案 2 :(得分:0)
我终于达成了解决方案,让我解释一下:
在LinqToSQL中注册两个表之间的关系(例如1:M),你必须在M侧声明一个EntitySet,在另一个表面声明一个EntityRef。
在我的例子中,我有一个私有属性代表EntitySet,以及一个用于修改它的公共访问器。考虑到Linq to Sql需要通过DataContract(对于类)和DataMember(对于属性)进行显式的装饰序列化,问题是我修饰了公共属性而不是私有属性。
之后一切都摇滚! (我已经失去了很多小时,但我学到了很多序列化)