.net 为什么WCF服务创建自己的类型?
在我的WCF项目中,我有一个来自不同库的类型:.net 为什么WCF服务创建自己的类型?,.net,wcf,.net,Wcf,在我的WCF项目中,我有一个来自不同库的类型: LibraryB.SomeClass 在服务的svc.cs文件中,我在参数中使用了上述类型: GetEmployees(LibraryB.SomeClass someClass) 在承载该服务的web应用程序中,将为该服务创建一个类型: MyWebApp.ServiceAReference.ServiceAClient serviceClient = new MyWebApp.ServiceAReference.ServiceAClient()
LibraryB.SomeClass
在服务的svc.cs文件中,我在参数中使用了上述类型:
GetEmployees(LibraryB.SomeClass someClass)
在承载该服务的web应用程序中,将为该服务创建一个类型:
MyWebApp.ServiceAReference.ServiceAClient serviceClient = new MyWebApp.ServiceAReference.ServiceAClient();
但当我引用该方法时:
serviceClient.GetEmployees(someClass);
参数的intellisense类型为:
MyWebApp.ServiceA.SomeClass
在web应用程序中,someClass的类型为LibraryB.someClass,而不是MyWebApp.ServiceA.someClass
有没有办法告诉web服务通过网络发送LibraryB.SomeClass类型?或者我应该做些不同的事情吗?客户端并不总是能够访问服务器的类型。服务器甚至可能不是您的代码!因此,在客户端创建代理对象来表示服务器的对象 如果服务器端和客户端共享包含通过网络发送的类型的组件,则可以在添加服务引用时通知应用程序重新使用该组件
客户端并不总是能够访问服务器的类型。服务器甚至可能不是您的代码!因此,在客户端创建代理对象来表示服务器的对象 如果服务器端和客户端共享包含通过网络发送的类型的组件,则可以在添加服务引用时通知应用程序重新使用该组件
当我这样做时,它就无法识别ServiceAClient(我已经为此更新了帖子)。您是否在客户端项目中添加了对包含该类型的DLL的引用?是的。该服务和web应用都有对LibraryB的引用。当我这样做时,它将无法识别ServiceAClient(我已为此更新了帖子)。是否添加了对客户端项目中包含该类型的DLL的引用?是。服务和web应用都有对LibraryB的引用。默认情况下,WCF服务本身和客户端只共享合同(例如,定义服务方法及其所涉及的数据类型的接口)。客户端完全独立于服务器。基于数据协定,客户端将重新创建跨连接序列化的类型,以便能够在客户端使用它们-但这些类型在客户端范围内是独立的、不同的类型,只是在连接上序列化为相同的XML消息格式。默认情况下,WCF服务本身和客户机只共享合同(例如,定义服务方法及其所涉及的数据类型的接口)。客户端完全独立于服务器。基于数据契约,客户机将重新创建跨线路序列化的类型,以便能够在客户机端使用它们——但这些类型在客户机范围内是独立的、不同的类型,只是在线路上序列化为相同的XML消息格式。