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

.NET 8托管式Blazor WASM客户端DI服务注册失败问题咨询

.NET 8托管式Blazor WASM客户端DI服务注册失败问题咨询

嘿,各位大佬,我碰到一个DI注册的问题卡好久了,想请大家帮忙看看:

我在.NET 8的托管式Blazor Web应用(WASM客户端+服务器托管+REST API)里,尝试在客户端Program.cs注册一个ClientDataAccess服务,代码如下:

public class Program {

public static async Task Main( string[] args ) {

var builder = WebAssemblyHostBuilder.CreateDefault( args );

builder.Services.AddSingleton<ClientDataAccess>();

await builder.Build().RunAsync();

}

}

不管这个ClientDataAccess是空类,还是换成AddScoped/AddTransient注册,都没用,注入的时候总会抛出这个异常:

InvalidOperationException: Cannot provide a value for property 'Data' on type 'MyProgram.Client.Components.MyEditor'. There is no registered service of type 'MyProgram.Client.Services.ClientDataAccess'.

我已经确认ClientDataAccess的访问修饰符是public的,但就是找不到问题所在,有没有大佬能指点下可能的原因或者排查方向?


我自己先梳理了几个可能的排查点,也想和大家确认下:

  • 是不是搞混了项目的Program文件? 因为是托管式架构,服务器端和客户端各有一个Program.cs,我会不会不小心把服务注册到服务器项目里,而非客户端项目?
  • 命名空间引用问题? Program.cs里有没有正确引用MyProgram.Client.Services这个命名空间?有没有漏写using MyProgram.Client.Services;?
  • 组件注入是否正确? MyEditor组件里的注入是不是加了[Inject]特性?比如是不是写成了:
    [Inject]
    public ClientDataAccess Data { get; set; }
    
    会不会是漏了这个特性导致注入失败?
  • 项目引用是否完整? 如果ClientDataAccess在单独的类库项目里,客户端项目有没有正确添加对这个类库的引用?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 07:59:35