C# 在asmx和wcf之间共享代码

C# 在asmx和wcf之间共享代码,c#,wcf,architecture,asmx,C#,Wcf,Architecture,Asmx,我有wcf服务。此外,我们的一些客户使用delphi7来使用我们的服务。Delphi7无法使用wcf(甚至是basicHttpBinding),因此我必须创建类似于我的wcf web服务的asmx。现在我正在寻找更好的方法,在相同的代码基础上构建wcf和asmx服务。使用相同的代码(相同的方法、逻辑)构建、维护两个服务的更好方法是什么 感谢Andrew您好,您可以创建一个BusinessManager来封装所有逻辑,然后从wcf或asmx创建一个实例,并通过从调用者接收的实际参数调用适当的方法

我有wcf服务。此外,我们的一些客户使用delphi7来使用我们的服务。Delphi7无法使用wcf(甚至是basicHttpBinding),因此我必须创建类似于我的wcf web服务的asmx。现在我正在寻找更好的方法,在相同的代码基础上构建wcf和asmx服务。使用相同的代码(相同的方法、逻辑)构建、维护两个服务的更好方法是什么


感谢Andrew

您好,您可以创建一个BusinessManager来封装所有逻辑,然后从wcf或asmx创建一个实例,并通过从调用者接收的实际参数调用适当的方法


我用BusinessManager这个词来定义类,它与您自己的业务逻辑有关,但它只是一个类,不管是静态的还是非静态的,我通常不希望这些类是静态的。

您好,您可以创建一个BusinessManager来封装所有逻辑,然后从wcf或asmx创建一个实例,并调用适当的方法来传递从调用方收到的实际参数


我使用word BusinessManager来定义与您自己的业务逻辑有关的类,但它只是一个类,无论是静态的还是非静态的,我通常不希望将此类类设置为静态的。

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


这样,您就有了两个适用于适当平台的服务,它们只调用共享代码库公开的方法,当在一个地方进行编辑并进一步部署时,这些方法适用于所有调用者。

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


这样,您就有了两个适用于适当平台的服务,它们只调用共享代码库公开的方法,当在一个地方进行编辑并进一步部署时,这些方法适用于所有调用者。

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

右键单击项目->添加->新建项目 选择Web->滚动到底部->Web服务


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

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

右键单击项目->添加->新建项目 选择Web->滚动到底部->Web服务


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

Delphi7支持调用COM(ActiveX)对象,不是吗

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


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

Delphi7支持调用COM(ActiveX)对象,不是吗

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


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

WCF与BasicHttpBinding相当于ASMX。你会遇到什么问题?您是否使用正确的url访问wsdl?我知道。这是第七期。Wsdl是不同的。使用
basicHttpBinding
的WCF服务应该没有问题。很难想象什么样的WSDL差异会破坏Delphi或任何其他程序。您应该询问有关特定服务的特定问题,您可能会发现问题所在。带有BasicHttpBinding的WCF相当于asmx。你会遇到什么问题?您是否使用正确的url访问wsdl?我知道。这是第七期。Wsdl是不同的。使用
basicHttpBinding
的WCF服务应该没有问题。很难想象什么样的WSDL差异会破坏Delphi或任何其他程序。你应该问一个关于你的具体服务的具体问题,你很可能会发现问题出在哪里。我认为这会很慢。我不需要服务链。这不是我的意思,只需立即实例化xxService类和调用方法,而不必经历“调用服务”的痛苦。我认为这会很慢。我不需要服务链。这不是我的意思,只要立即实例化xxService类和调用方法,而不必经历“调用服务”的痛苦。