源代码: http://code.google.com/p/sevenupdate/source/browse/#hg/Source/SevenUpdate.Base
无法使用SevenUpdate.Base.Sui,因为它与导入的DataContract不匹配。需要从引用的类型中排除此类型。
现在我尝试取消选中重用引用类型,并且我能够让我的项目进行编译。但是当从客户端发送一个集合时,它从未收到或无法在服务器端反序列化。
我真的需要这个才能工作。任何帮助将不胜感激,全部源代码由谷歌代码提供。
答案 0 :(得分:0)
我没有下载源代码并构建它,但可能是你在这个类上缺少DataContract吗? Sui类具有Sua类型的属性作为DataMember,因此它也需要序列化。它在您的代码中看起来像这样
[ProtoContract, ]
[KnownType(typeof(ObservableCollection<LocaleString>))]
public class Sua
答案 1 :(得分:0)
重现此错误需要做什么?第一位(关于匹配数据合约)听起来像WCF对你不满意,这表明你有两个相似(但不同)的合约“在玩”。如果您要重用共享库中的类型,这应该不是问题。
如果做最终排除类型(并在客户端和服务器上有不同的模型),那么它可以获得位 tricker,因为“mex”不会不保证位置将保持不变(并且indde,它们会定期更改) - 但是您可以通过对类型使用少量[ProtoPartialMember(...)]
来解决这个问题。它有效。)
但我强调 - 这里的主要问题似乎是WCF;如果 不满意这样代码没有代码生成/编译等,那么我的手就相当紧密(因为它不会与protobuf-net交谈)。