Tha*_*Guy 2 dependency-injection blazor blazor-client-side
在我正在使用的剃刀页面中@inject Blazored.LocalStorage.ISyncLocalStorageService localStorage,它工作正常。但是从非剃刀连接类(服务和助手)使用
[Inject]
protected Blazored.LocalStorage.ISyncLocalStorageService localStorage { get; set; }
Run Code Online (Sandbox Code Playgroud)
始终返回 null。是否需要额外的东西才能使 DI 在非 Razor 文件中工作?或者我是否必须通过构造函数将所有 DI 从 UI 层一直向下推送?
以下内容仅基于我自己的经验,因此可能会被证明是错误的......
只有构造函数注入适用于非 Razor 对象。因此,您不能定义使用 Inject 属性注释的属性并期望用给定对象的实例填充它。请改用构造函数注入。
但是,对于 Razor 对象,您可以使用 @inject 指令将服务注入到 Razor 组件中,但您也可以将 Inject 属性与 razor 组件类定义 (.razor.cs ) 和 @code 块 ( .razor ) 中的属性一起使用。
希望这可以帮助...
| 归档时间: |
|
| 查看次数: |
1781 次 |
| 最近记录: |