这通常是因为服务没有正确注册而导致的问题。在Blazor WebAssembly项目中使用Dependency Injection时,需要在Startup.cs文件中配置服务,以便应用程序可以通过需要的服务实现的依赖项注入方式得到这些服务。
例如,以下代码演示了如何在Blazor中注册一个服务:
services.AddTransient();
在上面的代码中,IMyService是接口,MyService是实现该接口的类。您需要将这些代码添加到您的Startup.cs文件中的ConfigureServices方法中。
如果服务已正确注册,但仍然出现此问题,则可能需要排除调试。您可以在浏览器的开发人员工具中打开Network选项卡,并检查服务请求是否成功。
最后,还需要确保服务的生命周期适当。例如,如果您使用Transient生命周期,则每次注入时都会创建新的实例。如果您使用Singleton生命周期,则只会创建一个实例。确保服务生命周期与应用程序要求相符。
希望这些提示可以帮助您解决Blazor Wasm - 服务未注册但未抛出异常并一直挂起的问题。