我正在尝试将我创建的一些类对象保存到我的 Blazor Wasm 应用程序的会话存储中,以在刷新 (F5) 后保存状态。我遵循了 Bradley Wells 的教程 ( https://wellsb.com/csharp/aspnet/blazor-write-to-localstorage/ ),假设如果我使用会话存储而不是本地存储,一切都会相似。
如果我使用像字符串这样的基本数据类型来尝试我的代码,它就像一个魅力,刷新页面后仍然显示值“testmessage”。
protected override async Task OnInitializedAsync()
{
testString = await sessionStorage.GetItemAsync<string>("sample");
}
// Method gets triggered on button press
async Task TestMethodCanBeDeleted()
{
testString = "testmessage";
await sessionStorage.SetItemAsync<string>("sample", testString);
}
一旦我尝试保存例如 MyCustomObject 类的实例而不是字符串,它就不再起作用了。我是否必须首先在会话存储中创建类的实例?如果是,如何。
如果有人知道如何在会话存储中保存“非基本”数据类型的另一种(也许更好)方法,请发表评论。
编辑:布拉德利威尔斯在他的页面上回答了一个评论,说可以使用 Blazored 将对象保存到会话存储中,但没有解释如何。