无法通过WCF访问类

时间:2012-06-08 14:20:31

标签: c# wcf

我在同一个解决方案中有两个项目,一个服务和一个消费者应用程序。在服务中,我有许多类可以由消费者应用程序实例化,但有些类是不可访问的。除了名字之外没有区别。所有课程都是公开的,所以他们都应该被看到。是否有任何缓冲问题或其他任何可能导致问题表现的问题?

3 个答案:

答案 0 :(得分:3)

使用WCF或任何其他Web服务/删除技术时,使用者无法访问Server类。而是创建代理类。将它们视为能够通过应用程序边界调用方法的接口集。您可以实例化代理类,但是当您调用方法时,代理类将转到Service并调用由服务托管的类的相应方法。

如果双方都使用它们,您需要使用类库并移动您的共享类(并使用服务和消费者部署dll)。

更新(感谢razlebe):
不应在DLL中共享业务逻辑。它应该由服务器托管。但是,共享支持类(例如进行数据格式化的类)以避免代码重复是有意义的。

答案 1 :(得分:2)

我的猜测是“无法访问”的类是在最后一代代理(服务类,客户端)之后创建的。检查重新生成代理是否有帮助。

答案 2 :(得分:2)

更新服务类并通过以下方式更改界面时:

  • 添加方法(您的案例)
  • 删除方法
  • 更改签名

您的消费者需要了解这一变化。您必须更新服务参考http://msdn.microsoft.com/en-us/library/bb628652.aspx)才能重建代理。

如何更新?

点击此处查看:http://msdn.microsoft.com/en-us/library/bb628652.aspx) 但是一张图片胜过千言万语:

Visual image of updating a service reference

相关问题