簡體   English   中英

Blazor ProtectedSessionStorage 對象 NULL

[英]Blazor ProtectedSessionStorage object NULL

我在 ProtectedSessionStorage 上做了一個輔助類來讀/寫數據

using Microsoft.AspNetCore.ProtectedBrowserStorage;
public class SessionObjectHelper
{
    [Inject] private ProtectedSessionStorage ProtectedSessionStore { get; set; }
    
    public async Task<string> GetTestProperty()
    {
        var value = await ProtectedSessionStore.GetAsync<string>("TestProperty") ?? string.Empty;

        return value;
    }
    
    public async Task SetTestProperty(string value)
    {
        await ProtectedSessionStore.SetAsync("TestProperty", value);
    }       
}

如果我從組件調用這些方法中的任何一個,如下所示,ProtectedSessionStore 始終為 NULL

[Inject] private SessionObjectHelper SessionObjectHelper { get; set; }

protected override async Task OnInitializedAsync()
{
    var testProperty= await SessionObjectHelper.GetTestProperty();
}

您的SessionObjectHelper類應該聲明一個構造函數來獲取注入的服務,而不是使用[Inject]屬性,例如

    public class SessionObjectHelper
    {
        private ProtectedSessionStorage storage;

        public SessionObjectHelper(ProtectedSessionStorage storage)
        {
                this.storage = storage;
        }

[Inject]屬性旨在與 Razor 組件一起使用,而不是常規類。

然后你可以使用

[Inject] public SessionObjectHelper SessionObjectHelper { get; set; }

在您的組件中。 注意我更改為public - 如果它是私有的,運行時將無法看到/設置它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM