Временные службы сервера C# Blazor удаляютC#

Место общения программистов C#
Гость
Временные службы сервера C# Blazor удаляют

Сообщение Гость »

Я работаю над серверным приложением Blazor, и меня заблокировало или сбивает с толку использование служб временного типа внутри сервера Blazor.
Я прочитал эту тему о том, почему мне не следует реализовывать IDisposable внутри переходного процесса. сервис.

Промежуточные сервисы, реализующие IDisposable:

Ссылка на сервис поддерживается DI-контейнер, чтобы он мог обрабатывать удаление служб. Это предотвращает сбор мусора службы при удалении компонента. Служба хранится в памяти до тех пор, пока сам контейнер DI не будет утилизирован.

Мой вопрос:

Ничего ли, если я реализую IDisposable внутри своей временной службы и вызову .Dispose() внутри своего .razor, когда он мне больше не понадобится?
Давайте создадим пример:
Пример службы зарегистрирован как временный внутри DI:

Код: Выделить всё

namespace testExample
{
public class MyService : IDisposable
{
public void DoSomething()
{

}
public void Dispose()
{

}
}
}
Пример компонента:

Код: Выделить всё

@inject MyService _service

@implements IDisposable

MyComponent

@code {

protected override void OnInitialized()
{
_service.DoSomething();
}
public void Dispose()
{
_service.Dispose();
}
}

Я попробовал этот пример, и, глядя на память и отслеживая количество созданных экземпляров, кажется, что пример действителен и может быть использован, но недостаток моих знаний все еще делает меня незащищенным. об этом подходе.

Источник: https://stackoverflow.com/questions/781 ... es-dispose

Вернуться в «C#»