Asp.net Web服务模型
我有一个站点(MySite.com)/1个Web服务(WebService.MySite.com)和一个公共库(LibCommon) 公共库包含一个模型,例如UserModel=LibCommon.UserModel web服务有一个方法Asp.net Web服务模型,asp.net,web-services,serialization,soap,Asp.net,Web Services,Serialization,Soap,我有一个站点(MySite.com)/1个Web服务(WebService.MySite.com)和一个公共库(LibCommon) 公共库包含一个模型,例如UserModel=LibCommon.UserModel web服务有一个方法“Void CheckUser(LibCommon.UserModel model)” 但是,当我将'WebService'引用添加到'MySite.com'时,该方法会发生更改,看起来像是'Void CheckUser(WebService.MySite.co
“Void CheckUser(LibCommon.UserModel model)”
但是,当我将'WebService'
引用添加到'MySite.com'
时,该方法会发生更改,看起来像是'Void CheckUser(WebService.MySite.com.UserModel)
所以我认为公平的是,我可以将一个对象投射到另一个对象,因为它们是相同的,但是.NET说我不能这样做
这有什么办法吗
干杯,注意这是为WCF而不是为ASMX web服务: 您不能直接将原始数据类强制转换为WCF服务引用向导生成的代理类。但是,您可以在客户端中重用原始数据类:
- 添加包含传输对象的库引用(即
)作为对服务(LibCommon
)和客户端(WebService
)的引用。在客户端上添加服务引用时,请选择“高级”选项卡,然后选择“在引用的程序集中重用类型”。这将重用公共数据传输类,而不是使用代理复制类型Mysite.com
另外,也可以通过将服务器端服务契约接口移动到单独的公共程序集中,然后使用诸如或之类的技术来消除共享服务接口。注意,这是针对WCF的,而不是针对ASMX web服务: 您不能直接将原始数据类强制转换为WCF服务引用向导生成的代理类。但是,您可以在客户端中重用原始数据类:
- 添加包含传输对象的库引用(即
)作为对服务(LibCommon
)和客户端(WebService
)的引用。在客户端上添加服务引用时,请选择“高级”选项卡,然后选择“在引用的程序集中重用类型”。这将重用公共数据传输类,而不是使用代理复制类型Mysite.com
另外,也可以通过将服务器端服务契约接口移动到单独的公共程序集中,然后使用诸如或之类的技术来消除共享服务接口。您需要将WebServiceNameSpace.CommonLib对象作为参数传递。再次查看我的代码,我使用的是@StuartLC方式。您使用的是WCF(例如,svc)还是Web服务(.asmx)?我使用的是Web服务这可能会有所帮助:尽管如果您可以将代码移动到像WCF这样的较新技术,或者您需要将WebServiceNameSpace.CommonLib对象作为参数传递,您可能会发现优势。再次查看我的代码,我使用的是@StuartLC方式。您使用的是WCF吗(例如,svc)或Web服务(.asmx)?我正在使用webservices这可能会有所帮助:尽管如果您可以将代码移动到诸如WCF或