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

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

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


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

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

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

Мой вопрос:

Ничего ли, если я реализую IDisposable внутри своей временной службы и вызову

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

.Dispose()
внутри моего когда он мне больше не нужен?
Давайте создадим пример:
Пример службы зарегистрирован как временный внутри Д.И.:

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

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();
}
}

I tried this example up and by looking at memory and tracking how many instances are created, it seems that example is valid and can be used, but lack of my knowledge is still making me unsecured about this approach.


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

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

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

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

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

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