2010-03-23 89 views
1

源代码错误服务的错误消息。需要从引用类型中排除此类型。WCF与共享类

现在我试图取消选中重用引用类型,我可以让我的项目编译。但是当从客户端发送一个集合时,它从来没有收到或者无法在服务器端反序列化。

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

+0

任何人都可以帮我解决这个问题吗?我假设它必须处理被丢弃的protobuf属性。我一直试图找出这个错误数周。 – 2010-04-04 22:07:33

回答

0

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

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

丢失datacontract是一个简单的错误,当我做了一个搜索/替换来删除XML属性,它在那里。我修复了它并更新了服务,错误仍然相同。 – 2010-03-24 12:46:27

0

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

如果结束了不含类型(以及具有客户端和服务器不同的型号),然后它可以得到一个 tricker,因为“MEX”不保证该职位将保持不变(和indde,他们经常改变) - 但你可以通过使用几个[ProtoPartialMember(...)]类型(不漂亮,但它的工作原理)来解决这个问题。

但我强调 - 这里的主要问题似乎是WCF;如果不高兴,这样的代码不codegen /编译等,那么我的手是相当捆绑(因为它不会像protobuf网谈话)。

+0

唯一的办法是下载源代码,编译基础和管理项目,运行管理exe文件,我把它放在一个循环中,以便在测试时更新服务更容易(它不会做任何事情,除非在你的循环中运行机)。然后更新SevenUpdate的服务,您将看到警告消息。 [code] void AddApp(Sua app); void SetUpdates(Collection appUpdates); ..等等[/ code] 我开始弄错了。这些类位于共享的SevenUpdate.Base中。它可能是protobuf的属性被WCF丢弃导致不匹配? – 2010-03-24 12:52:06

+0

它工作正常,我试图发送类到服务和服务返回结果。 (双面合同),可能是我错误地实施了它。在此之前,我只是序列化一个临时文件,并让服务反序列化它,这是我想通过使用已有的WCF服务避免的。 – 2010-03-24 12:53:55