在经典ASP.NET中,我们只需使用WebMethod
属性标记一个方法,即可创建可从外部应用程序调用的SOAP服务方法。我们如何使用ASP.NET Core实现相同的目标?
它必须是基于XML SOAP的。它必须与ASP.NET类作为后端时工作的客户端兼容。
您可以使用SOAPCore NuGet包来实现这一目标。想象一下你有如下合同:
[ServiceContract]
public interface IPingService
{
[OperationContract]
string Ping(string msg);
}
并实施:
public class SampleService : IPingService
{
public string Ping(string msg)
{
return string.Join(string.Empty, msg.Reverse());
}
}
然后注册该服务:
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton(new PingService());
services.AddMvc();
//rest goes here
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseSoapEndpoint(path: "/PingService.svc", binding: new BasicHttpBinding());
app.UseMvc();
//rest goes here
}
这也可以通过[HttpGet]或[HttpPost]来实现。