dotnet 简单方法在一个进程内同时跑起 WPF 和 ASP.NET Core 框架 ...

张春  论坛元老 | 2024-5-18 10:49:34 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1029|帖子 1029|积分 3087

从设计架构上,无论是 WPF 还是 ASP.NET Core 框架,都是在 dotnet 运行时上层的应用,两个框架处于平级的结构。理论上讲,两个平级的框架只要不存在特殊的情况,都是可以大概相容存在的。本文将和大家先容一个非常简单的方法,在一个进程内同时跑起 WPF 和 ASP.NET Core 框架
在一个进程内同时跑起 WPF 和 ASP.NET Core 框架在一些业务情况下还是一个不错的选择。好比以 ASP.NET Core 框架为主,让 WPF 作为状态展示的界面。好比以 WPF 为主,让 ASP.NET Core 框架充当应用对外接口,好比多应用之间的通讯等。更多的用法还请发挥你的想象力
只有将 WPF 更新到使用 dotnet core 版本(包含 dotnet 5 、dotnet 6 等等)即可非常简单和 ASP.NET Core 框架在一起跑。接下来我给出一张截图,说不定大家看到了截图就知道了实现方式了

如上图,我在 WPF 应用的按钮内里点击的时候,启动了 ASP.NET Core 框架
详细的实现方法是:

  • 将 WPF 和 ASP.NET Core 分别界说为两个项目。或者是再多界说一个控制台项目作为入口项目
  • 让 WPF 项目引用 ASP.NET Core 项目。或者是有控制台入口项目标情况下,让控制台入口项目同时引用 WPF 和 ASP.NET Core 项目
  • 找到时机分别启动 WPF 应用和 ASP.NET Core 主机
虽然新建了多个项目,但运行起来只有一个进程。这里需要敲黑板,项目标数量影响的是程序集,不直接影响进程的数量
好比上图给出的方法就是只新建 WPF 和 ASP.NET Core 项目,接着在 WPF 项目标按钮点击变乱内里,调用到 ASP.NET Core 项目标 Main 静态函数内里,将 ASP.NET Core 的主机启动
启动 ASP.NET Core 的主机需要使用 Task.Run 的方式,如果不想 Task.Run 的方式,可以将 ASP.NET Core 的 Host 实验从 Run 方法换成 RunAsync 方法走异步
如此简单的方式即可在一个进程内里同时使用 WPF 和 ASP.NET Core 框架
本文的代码放在githubgitee 接待访问
可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行内里输入以下代码,即可获取到本文的代码
  1. git init
  2. git remote add origin https://gitee.com/lindexi/lindexi_gd.git
  3. git pull origin 0bb1705e0118208f4134b5334ace9ee84270eb5f
复制代码
以上使用的是 gitee 的源,如果 gitee 不能访问,请更换为 github 的源。请在命令行继续输入以下代码
  1. git remote remove origin
  2. git remote add origin https://github.com/lindexi/lindexi_gd.git
  3. git pull origin 0bb1705e0118208f4134b5334ace9ee84270eb5f
复制代码
获取代码之后,进入 HefebehairHercheaconem 文件夹

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张春

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表