1

源代码: http ://code.google.com/p/sevenupdate/source/browse/#hg/Source/SevenUpdate.Base

SevenUpdate.Base.Sui 无法使用,因为它与导入的 DataContract 不匹配。需要从引用类型中排除此类型。

现在我尝试取消选中重用引用类型,并且我能够编译我的项目。但是当从客户端发送一个集合时,它从未被接收到或无法在服务器端反序列化。

我真的需要这个工作。任何帮助将不胜感激,完整的源代码由谷歌代码提供。

4

2 回答 2

0

我没有下载源代码并构建它,但可能是你在这个类上缺少 DataContract 吗?Sui 类有一个 Sua 类型的属性作为 DataMember,因此它也需要被序列化。当前在您的代码中看起来像这样

[ProtoContract, ]
[KnownType(typeof(ObservableCollection<LocaleString>))]
public class Sua
于 2010-03-23T03:24:04.940 回答
0

我需要做什么才能重现此错误?第一点(关于匹配数据合同)听起来 WCF 对您不太满意,这表明您有两个相似(但不同)的合同“正在使用”。如果您重新使用共享库中的类型,这应该不是问题。

如果您最终排除了类型(并且在客户端和服务器上具有不同的模型),那么它可能会有点棘手,因为“mex”不能保证位置将保持不变(并且 indde,它们会定期更改) -但是你可以在部分类中解决这个问题,通过[ProtoPartialMember(...)]类型使用一些(不漂亮但它有效)。

但我强调——这里的主要问题似乎是 WCF;如果不满意,以至于代码无法进行代码生成/编译等,那么我的手就很紧张(因为它不会与 protobuf-net 对话)。

于 2010-03-23T07:56:29.397 回答