從設(shè)計架構(gòu)上,無論是 WPF 還是 ASP.NET Core 框架,都是在 dotnet 運行時上層的應(yīng)用,兩個框架處于平級的結(jié)構(gòu)。理論上講,兩個平級的框架只要不存在特殊的情況,都是能夠相容存在的。本文將和大家介紹一個非常簡單的方法,在一個進(jìn)程內(nèi)同時跑起 WPF 和 ASP.NET Core 框架
在一個進(jìn)程內(nèi)同時跑起 WPF 和 ASP.NET Core 框架在一些業(yè)務(wù)情況下還是一個不錯的選擇。比如以 ASP.NET Core 框架為主,讓 WPF 作為狀態(tài)展示的界面。比如以 WPF 為主,讓 ASP.NET Core 框架充當(dāng)應(yīng)用對外接口,比如多應(yīng)用之間的通訊等。更多的用法還請發(fā)揮你的想象力
只有將 WPF 更新到使用 dotnet core 版本(包含 dotnet 5 、dotnet 6 等等)即可非常簡單和 ASP.NET Core 框架在一起跑。接下來我給出一張截圖,說不定大家看到了截圖就知道了實現(xiàn)方式了
如上圖,我在 WPF 應(yīng)用的按鈕里面點擊的時候,啟動了 ASP.NET Core 框架
具體的實現(xiàn)方法是:
- 將 WPF 和 ASP.NET Core 分別定義為兩個項目?;蛘呤窃俣喽x一個控制臺項目作為入口項目
- 讓 WPF 項目引用 ASP.NET Core 項目?;蛘呤怯锌刂婆_入口項目的情況下,讓控制臺入口項目同時引用 WPF 和 ASP.NET Core 項目
- 找到時機分別啟動 WPF 應(yīng)用和 ASP.NET Core 主機
雖然新建了多個項目,但運行起來只有一個進(jìn)程。這里需要敲黑板,項目的數(shù)量影響的是程序集,不直接影響進(jìn)程的數(shù)量
比如上圖給出的方法就是只新建 WPF 和 ASP.NET Core 項目,接著在 WPF 項目的按鈕點擊事件里面,調(diào)用到 ASP.NET Core 項目的 Main 靜態(tài)函數(shù)里面,將 ASP.NET Core 的主機啟動
啟動 ASP.NET Core 的主機需要使用 Task.Run 的方式,如果不想 Task.Run 的方式,可以將 ASP.NET Core 的 Host 執(zhí)行從 Run 方法換成 RunAsync 方法走異步
如此簡單的方式即可在一個進(jìn)程里面同時使用 WPF 和 ASP.NET Core 框架
本文的代碼放在github 和 gitee 歡迎訪問
可以通過如下方式獲取本文的源代碼,先創(chuàng)建一個空文件夾,接著使用命令行 cd 命令進(jìn)入此空文件夾,在命令行里面輸入以下代碼,即可獲取到本文的代碼
git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin 0bb1705e0118208f4134b5334ace9ee84270eb5f
以上使用的是 gitee 的源,如果 gitee 不能訪問,請?zhí)鎿Q為 github 的源。請在命令行繼續(xù)輸入以下代碼文章來源:http://www.zghlxwxcb.cn/news/detail-858666.html
git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin 0bb1705e0118208f4134b5334ace9ee84270eb5f
獲取代碼之后,進(jìn)入 HefebehairHercheaconem 文件夾文章來源地址http://www.zghlxwxcb.cn/news/detail-858666.html
到了這里,關(guān)于dotnet 簡單方法在一個進(jìn)程內(nèi)同時跑起 WPF 和 ASP.NET Core 框架的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!