У меня есть базовая реализация субъекта здесь:
Код: Выделить всё
public class MessageService : IMessageService
{
private readonly Subject _paginationSubject = new();
private readonly List _disposables = new();
public void Dispose()
{
_paginationSubject?.Dispose();
foreach (var eachDisposable in _disposables)
{
eachDisposable?.Dispose();
}
}
public void EmitPaginationChanges(KeyValuePair pageAndSize)
{
_paginationSubject.OnNext(pageAndSize);
}
public void OnPaginationChanged(Action action)
{
_disposables.Add(_paginationSubject.Subscribe(action));
}
}
Теперь класс Receiver.cs или страница blazoe подписываются на него через метод OnPaginationChanged, передавая действие. Теперь они могут общаться друг с другом.
Я хочу, чтобы, как только объект Receiver.cs перестанет использоваться (уничтожится), я хочу отказаться от подписки. из темы. Чтобы действие не выполнялось впоследствии, и как только будет создан новый объект Receiver.cs, он сможет снова подписаться на тему.
Подробнее здесь: https://stackoverflow.com/questions/792 ... m-reactive