Вам даже не нужно использовать внедрение зависимостей, если вы не хотите / не нуждаетесь в этом.
Вы можете просто создать класс и сохранить его в памяти, как и любой другой тип кода CSharp.
Необязательно, но если вы хотите сделать свой класс доступным для других компонентов, в моем примере проекта BlazorImageGallery я создаю объект с именем GalleryManager, который хочу сделать доступным для других компонентов в качестве каскадного параметра:
public class GalleryManager
{
}
<CascadingValue Value="GalleryManager">
<ArtistListViewer></ArtistListViewer>
<ImageListViewer></ImageListViewer>
</CascadingValue>
Затем на своей странице индекса я загружаю менеджер галереи:
protected override async Task OnInitializedAsync()
{
// Create the GalleryManager
this.GalleryManager = new GalleryManager(this);
// Load the Artists
this.GalleryManager.Artists = await ArtistService.GetArtistList();
}
Моя IndexPage может ссылаться на это. GalleryManager на протяжении всего времени жизни моего приложения.
И ребенок компоненты:
/// <summary>
/// This parameter is available to call parent objects
/// </summary>
[CascadingParameter]
GalleryManager GalleryManager { get; set; }
Вам не нужно делать это каскадным параметром, если вы этого не хотите, или даже размещать его на странице. Я только что показал вам пример сохранения класса загруженным в память.
Blazor - это просто C# код, и, поскольку я пришел с Windows фона формы, я чувствую себя как дома, поскольку элемент будет жить в памяти, пока я не покину страницу или не избавлюсь от нее.