带有共享类的WCF错误服务错误消息

时间:2010-03-23 02:54:26

标签: c# wcf class protobuf-net

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

[ProtoContract, ]
[KnownType(typeof(ObservableCollection<LocaleString>))]
public class Sua

答案 1 :(得分:0)

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

如果最终排除类型(并在客户端和服务器上有不同的模型),那么它可以获得 tricker,因为“mex”不会不保证位置将保持不变(并且indde,它们会定期更改) - 但是您可以通过对类型使用少量[ProtoPartialMember(...)]来解决这个问题。它有效。)

但我强调 - 这里的主要问题似乎是WCF;如果 不满意这样代码没有代码生成/编译等,那么我的手就相当紧密(因为它不会与protobuf-net交谈)。