我有一个典型的设置。该解决方案包含用于业务对象的常规.NET类库,一个WCF项目,一个Silverlight项目和支持Web应用程序项目,以及一些silverlight类库。我的业务类库中的类都标有“[serializable]”属性。 WCF服务有一个方法,它将返回业务类库中一个对象的List。当我在silverlight类库项目中添加此服务的引用时,生成的代理没有任何错误,但此代理不包含任何服务定义或服务接口本身。它确实包含我从服务返回的业务对象中包含的完整对象模型的定义,但是如果没有对服务客户端的实际引用,我将无法调用该服务。设置或实施此设置是否存在问题?
答案 0 :(得分:1)
您是否已将属性[OperationContract]
和[ServiceContract]
添加到WCF界面?
答案 1 :(得分:0)
确保您的业务对象标记为[DataContract]
。它包含的任何对象也需要用该属性标记。
编辑:由于您不想修改第三方代码,也许可以为您的服务创建手动代理,包括在那里定义的类型。
这是一篇关于使用WCF the Manual Way的文章。
答案 2 :(得分:0)
您是否尝试过使用命令行中的slsvcutil.exe tool生成代理而不是使用“添加服务参考”?这可能至少在生成代理时吐出一些警告,以帮助您追踪问题,并使您可以更好地控制代理的各种选项。