Blazor 客户端 [inject] 属性总是 return null
Blazor client side [inject] properties always return null
在 razor 页面中,我使用 @inject Blazored.LocalStorage.ISyncLocalStorageService localStorage
并且工作正常。但是来自非剃须刀连接 类(服务和助手)使用
[Inject]
protected Blazored.LocalStorage.ISyncLocalStorageService localStorage { get; set; }
始终returns 为空。是否需要一些额外的东西才能让 DI 在非 Razor 文件中工作?或者我是否必须通过构造函数将所有 DI 从 UI 层一直向下推?
以下仅基于我自己的经验,所以我可能会被证明是错误的...
只有构造函数注入适用于非 razor 对象。因此,您不能定义一个用 Inject 属性注释的 属性 并期望它用给定对象的实例填充。改用构造函数注入。
然而,对于 Razor 对象,您可以使用 @inject 指令将服务注入到 Razor 组件中,但您也可以使用 Inject 属性和 razor 组件中的属性 class 定义 (.razor.cs ) 和 @code 块 ( .razor ).
希望这对您有所帮助...
在 razor 页面中,我使用 @inject Blazored.LocalStorage.ISyncLocalStorageService localStorage
并且工作正常。但是来自非剃须刀连接 类(服务和助手)使用
[Inject]
protected Blazored.LocalStorage.ISyncLocalStorageService localStorage { get; set; }
始终returns 为空。是否需要一些额外的东西才能让 DI 在非 Razor 文件中工作?或者我是否必须通过构造函数将所有 DI 从 UI 层一直向下推?
以下仅基于我自己的经验,所以我可能会被证明是错误的...
只有构造函数注入适用于非 razor 对象。因此,您不能定义一个用 Inject 属性注释的 属性 并期望它用给定对象的实例填充。改用构造函数注入。
然而,对于 Razor 对象,您可以使用 @inject 指令将服务注入到 Razor 组件中,但您也可以使用 Inject 属性和 razor 组件中的属性 class 定义 (.razor.cs ) 和 @code 块 ( .razor ).
希望这对您有所帮助...