当我创建新的 Blazor Web App 时,服务器和客户端项目都包含一个 program.cs 文件,正如预期的那样。我是否需要在两个 program.cs 文件中配置依赖项容器,一次在服务器项目中,一次在客户端项目中?
我已经将容器添加到两个文件中,但似乎有很多代码重复。是否有一个项目结构只需要将容器放在一个地方,而不管它们被注入到哪里。我正在使用 Clean Architecture。
我最初将所有容器都放在服务器项目中,但出现了“没有注册服务”的错误,如果我将它们全部放在客户端项目中,也会出现同样的错误。
我肯定做错了什么,对吧?
没什么问题,只是会让人很困惑。这完全取决于你的应用程序如何配置。
如果您正在进行预渲染,则页面的首次渲染将在服务器上进行,因此您需要在服务器上注册初始页面预加载所需的所有服务。初始预渲染后,应用程序将切换到在客户端上运行的 WASM,因此它也需要所有必要的服务。
如果您禁用预渲染,那么您只需要客户端服务。