由於這樣或者那樣的原因,您的桌面程序可能需要WebApi服務,那么您可以看看我是怎么折騰的。
- 新建一個類庫
- 編輯工程文件,添加以下語句
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App"></FrameworkReference>
</ItemGroup>
- 添加您需要的Api Controller
- 添加一個服務類
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();
}
}
}
- 桌面程序添加引用,調用 SlefHostHelp.Start方法
搞定了,但是字數太少但是字數太少但是字數太少但是字數太少但是字數太少但是字數太少但是字數太少但是字數太少但是字數太少但是字數太少但是字數太少但是字數太少但是字數太少但是字數太少但是字數太少但是字數太少但是字數太少但是字數太少但是字數太少但是字數太少