You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从非Blazor项目中运行Blazor Web应用并实现双向通信?

如何从非Blazor项目中运行Blazor Web应用并实现双向通信?

我最近在做项目时碰到了个棘手的需求:想要从一个非Blazor项目(就叫它MyApp.Service吧,这个项目本身还要处理其他一堆业务逻辑)里启动一个Blazor应用(MyApp.Blazor),而且这俩项目之间必须能实现双向通信。

先排除掉不可行的方案

一开始我最先想到的是把MyApp.Blazor做成独立可执行文件,让MyApp.Service不用管它的内部细节,直接把它当作一个独立进程启动就行。但这个方案根本走不通——因为Web应用和服务之间必须要能双向传消息,独立进程的方式完全满足不了这个核心需求。

原本我觉得逻辑上靠谱的方向是把Blazor应用直接集成到MyApp.Service的进程里,通过进程内的机制来实现双向交互,比如可以这么做:

  • 不在外部单独启动Blazor应用,而是在MyApp.Service里直接初始化并启动Blazor的宿主服务(比如WebApplication实例)
  • 搞一个双方都能引用的共享类库,定义好通信用的接口、消息模型还有事件委托,这样两边都能基于这个约定来收发消息
  • 借助依赖注入,把共享的通信服务注入到Blazor组件和MyApp.Service的业务逻辑里,这样两边就能随时给对方发消息、监听对方的消息了

备注:内容来源于stack exchange,提问作者Josh Brunton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 16:45:27