由于这样或者那样的原因,您的桌面程序可能需要WebApi服务,那么您可以看看我是怎么折腾的。

  1. 新建一个类库
  2. 编辑工程文件,添加以下语句
  <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App"></FrameworkReference>
  </ItemGroup>

  1. 添加您需要的Api Controller
  2. 添加一个服务类
using System.Threading.Tasks;

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace WebApi
{
    public static class SelftHostHelper
    {

        private static IHost _Host;
        public static void Start()
        {
            _Host = Host.CreateDefaultBuilder().ConfigureWebHostDefaults(webB =>
            {
                webB.UseKestrel();
                webB.ConfigureKestrel(ii => ii.ListenAnyIP(89));
                webB.ConfigureServices(ii =>
                {
                    ii.AddControllers();
                });
                webB.Configure(app =>
                {
                    app.UseRouting();

                    app.UseEndpoints(endpoints =>
                    {
                        endpoints.MapControllers();
                    });
                });

            }).Build();
            _Host.Start();

        }

        public static Task StopAsync()
        {
            return _Host.StopAsync();
        }



    }
}



  1. 桌面程序添加引用,调用 SlefHostHelp.Start方法

搞定了,但是字数太少但是字数太少但是字数太少但是字数太少但是字数太少但是字数太少但是字数太少但是字数太少但是字数太少但是字数太少但是字数太少但是字数太少但是字数太少但是字数太少但是字数太少但是字数太少但是字数太少但是字数太少但是字数太少但是字数太少