Однако я заметил, что оба инициализированные асинк и dispose выполняются дважды.
выполнено.
dispose выполнено.
onitializedAsync выполнено.
dispected. доступ. Времена, это не подходит, потому что изображения перезагружаются слишком часто. < /p>
Я наткнулся на эту ветку. Я хотел реализовать ответы, содержащиеся там, но поток о Blazor в целом, и это с 2019 года. У меня нет _host.cshtml в проекте. (Итак, мой вопрос не дубликат).
Я затем попробовал другой ответ, используя @Rendermode @(New InteractiveSerRErrenderMode (PRERENDER: FALSE)) < /code>. Это оказывает влияние, которое второе утилизация больше не называется при рендеринге, иначе только когда вы покидаете страницу. Тем не менее, данные извлекаются дважды.
Я использую приложение на стороне сервера. Шаблон при создании проекта - это:
}
}
}
@code {
private List Foos = new List();
protected override async Task OnInitializedAsync()
{
Foos = await LoadImages();
Console.WriteLine("OnInitializedAsync executed.");
}
public void Dispose()
{
Console.WriteLine("Dispose executed.");
foreach (Foo foo in Foos)
{
foo.CleanUp();
}
}
private Task LoadImages()
{
List foos = new List();
Foo foo1 = new Foo(System.IO.File.ReadAllBytes(@$"{Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)}\Pictures\20190119_131055 2.jpg"));
foos.Add(foo1);
Foo foo2 = new Foo(System.IO.File.ReadAllBytes(@$"{Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)}\Pictures\20210117_010401.jpg"));
foos.Add(foo2);
return Task.FromResult(foos);
}
}
< /code>
namespace BlazorMinimalExample2
{
public class Foo
{
public byte[]? ImageAsByteArray { get; set; }
public Foo(byte[] stuff)
{
this.ImageAsByteArray = stuff;
}
public void CleanUp()
{
if (this.ImageAsByteArray != null)
{
this.ImageAsByteArray = null;
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... displaying