我在同一个解决方案中有两个项目,一个服务和一个消费者应用程序。在服务中,我有许多类可以由消费者应用程序实例化,但有些类是不可访问的。除了名字之外没有区别。所有课程都是公开的,所以他们都应该被看到。是否有任何缓冲问题或其他任何可能导致问题表现的问题?
答案 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) 但是一张图片胜过千言万语: