在asmx和wcf之间共享代码

时间:2011-03-02 10:15:34

标签: c# wcf architecture asmx

我有wcf服务。还有一些我们的客户使用delphi7来使用我们的服务。 Delphi7无法使用wcf(甚至是basicHttpBinding),所以我必须创建我的wcf web服务的asm​​x模拟。现在我正在寻找更好的方法在相同的代码库上构建wcf和asmx服务。使用相同的代码(相同的方法,逻辑)构建,维护两个服务的最佳方法是什么

谢谢Andrew

4 个答案:

答案 0 :(得分:3)

使用动态链接库(* .dll)来存放两个项目的共享代码,引用和利用。

通过这种方式,您可以为适当的平台提供两种服务,这些服务只调用共享代码库公开的方法,在一个地方进行编辑并进一步部署时,适用于所有呼叫者。

答案 1 :(得分:1)

您可以创建一个BusinessManager,它封装所有逻辑,然后从wcf或asmx中创建一个实例,并调用正确的方法传递从调用者收到的实际参数。

我使用BusinessManager这个词来定义类与你自己的业务逻辑有关,但它只是一个类,无论是静态的还是不是,我通常更喜欢不使这些类静态。

答案 2 :(得分:1)

如果现有的WCF服务已经托管在ASP.NET Web应用程序/站点中,您可以轻松地将普通的旧ASMX Web服务添加到其中。

右键点击您的项目 - >添加 - >新物品 选择网络 - >滚动到底部 - >网络服务。

然后让您的Web服务调用您的WCF方法。

答案 3 :(得分:0)

Delphi 7支持调用COM(ActiveX)对象,不是吗?

为什么不为WCF服务构建COMVisible .NET客户端,并通过COM接口在Delphi中使用它。

这样您就不必同时维护ASMX和WCF服务。