在asmx Web服务中使用DLL中的对象而不是Web代理

时间:2013-12-16 12:37:29

标签: c# .net web-services asmx

我在VS2012中有两个项目的解决方案。一个是旧的ASMX Web服务项目,一个是名为Utils的DLL项目。

Web服务项目大量使用了Utils项目,并且想法是这个DLL也将被发送给客户端,因为它们也需要它的功能。

因此,Web Service项目中的WebMethod如下所示:

using Utils;

[WebMethod]
[XmlType(Namespace = "http://url/invoice")]
public void CheckInvoice(CToken token) { ... }

因此,在此示例中,Web方法CheckInvoice需要一个类CToken的实例,该实例位于Utils命名空间中。

但是当我生成Web Service的代理类时,暴露的方法CheckInvoice需要CToken命名空间而不是ServiceProxy命名空间中的Utils实例。

但客户端也有Utils DLL。那么我如何强制生成代理来使用CToken命名空间中的Utils类而不是(默认)ServiceProxy命名空间?

-

当我添加Service Reference时,我选中了 重新使用引用的程序集中的类型 复选框以及 重用所有引用的程序集中的类型 即可。但这没有任何区别。也许这仅适用于WCF Web服务?我正在寻找ASMX Web服务的解决方案。

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

去过那里!我很想知道是否有一种方法可以像你描述的那样正确地做到这一点。但是,我找到了一种将新类型转换为所需类型的解决方法。在此处查看我的帖子作为建议的答案:Is it possible to convert an object to another object when both classes are identical?