Временные службы сервера 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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