Falcon.SugarApi/Falcon.SugarApi.WebService
2023-02-16 15:25:37 +08:00
..
Falcon.SugarApi.WebService.csproj 增加WebService支持类。 2023-02-16 15:25:37 +08:00
Readme.md 增加WebService支持类。 2023-02-16 15:25:37 +08:00
WebServiceClient.cs 增加WebService支持类。 2023-02-16 15:25:37 +08:00
WebServiceClientOption.cs 增加WebService支持类。 2023-02-16 15:25:37 +08:00
WebServiceExtend.cs 增加WebService支持类。 2023-02-16 15:25:37 +08:00

WebService服务器帮助

服务端

  1. 首先使用IServiceCollection.AddWebServices注册服务及其实现。
  2. 使用IApplicationBuilder.UseRouting()应用路由中间价。
  3. 调用IApplicationBuilder.UseWebServiceEndpoint方法应用中间件。

客户端

  1. 调用WebServiceClient.CreateWebServiceClient方法创建客户端。T为服务端应以的协议接口返回T协议对应的通信实现。

实例

服务端:

    /// <summary>
    /// Web服务协议
    /// </summary>
    [ServiceContract]
    public interface IWebSvc
    {
        [OperationContract]
        public string HellowWorld(string name);
    }

    public class WebSvc:IWebSvc
    {
        public string HellowWorld(string name) {
            return $"Hellow world {name}!";
        }
    }

    using Falcon.SugarApi.WebService;
    using Server;

    var builder = WebApplication.CreateBuilder(args);
    builder.Services.AddWebService<IWebSvc,WebSvc>();

    var app = builder.Build();
    app.UseRouting();
    app.UseWebServiceEndpoint<IWebSvc>("/WebService.asmx");

    app.Run();

客户端:


    using System.ServiceModel;
    [ServiceContractAttribute(ConfigurationName = "Service.IWebSvc")]
    internal interface IWebSvc
    {
        [OperationContractAttribute(Action = "http://tempuri.org/IWebSvc/HellowWorld",ReplyAction = "http://tempuri.org/IWebSvc/HellowWorldResponse")]
        Task<string> HellowWorldAsync(string name);
    }

    using Falcon.SugarApi.WebService;

    var svc = WebServiceClient.CreateWebServiceClient<IWebSvc>("http://localhost:5000/WebService.asmx");
    var result=await svc.HellowWorldAsync("Jeck");