我的解决方案中有3个项目。
最初在设置服务和应用程序时,我将公共库添加到两个项目的引用中,以便我可以使用我需要的类。
很快就发现,在生成代码以在我的客户端应用程序中使用Web方法的过程中,它会自动导入我在服务应用程序中使用的某些命名空间。
这给我带来了相互矛盾的参考警告,因为它们实际上是从两个不同的资源中导入的。
然后我在报表客户端中删除了对库的引用,我可以看到VS只导入了客户端需要的两个命名空间中的一个。这两个都是由我的ServiceContract中的方法返回的。
查看了客户端生成的代码之后,它似乎重新创建了我已经包含在库中的类,并且只提供了用于访问的公共属性。
是否可以使用像我正在尝试使用WCF的库。或者我应该废弃常见的库想法,只是在服务端创建一些数据传输类?
答案 0 :(得分:0)
你应该能够在两端引用公共库,但它可能是有用的,并且不像你建议的那样实现数据传输类。使用特殊类(或类似JSON的序列化)从服务发送和接收数据将使您更容易为多个客户端项目重用该服务。
每当您减少应用程序各层之间的耦合时,您将来可以更轻松地实施更改/升级:)