如何在Winform中Host一个.Net Core WebApi应用

问题提出:

1) 在Winform中Host一个.Net Core WebApi
2) 在请求一个上面Host的webapi中,打开winform窗体,做一些操作后,再返回

解决方案

限制: 由于微软对于nuget方式使用asp.net core的方式只支持到2.2,所以项目虽然用了.net 5,但web api的版本还是2.2

  1. Host webapi 重点代码如下
    ` C#
    [STAThread]
    static void Main(string[] args)
    {

    CreateWebHostBuilder(args).Build().RunAsync(); //启动web api host
    }
    `

  2. 请求中打开窗体关键代码:
    `
    [HttpGet("show")]

public ActionResult Show()
{
var str = "nothing";
Program.MainForm.Invoke(new Action(() => {
str = Program.MainForm.ShowMe();
}));

return Content(str);

}
`

Sample 代码:下载

原文地址:https://www.cnblogs.com/billqian/p/12970377.html