问题提出:
1) 在Winform中Host一个.Net Core WebApi
2) 在请求一个上面Host的webapi中,打开winform窗体,做一些操作后,再返回
解决方案
限制: 由于微软对于nuget方式使用asp.net core的方式只支持到2.2,所以项目虽然用了.net 5,但web api的版本还是2.2
-
Host webapi 重点代码如下
` C#
[STAThread]
static void Main(string[] args)
{CreateWebHostBuilder(args).Build().RunAsync(); //启动web api host
}
` -
请求中打开窗体关键代码:
`
[HttpGet("show")]
public ActionResult Show()
{
var str = "nothing";
Program.MainForm.Invoke(new Action(() => {
str = Program.MainForm.ShowMe();
}));
return Content(str);
}
`
Sample 代码:下载