Невозможно преобразовать HandleIntegrationEvent в HandleIntegrationEvent< IBaseEvent>
Пример
Код: Выделить всё
using System.Threading.Tasks;
using System.Collections.Generic;
public interface IBaseEvent
{
string Name { get; }
}
public class UserCreatedEvent: IBaseEvent
{
public string Name { get; } = "UserCreatedEvent";
}
public delegate Task HandleIntegrationEvent(TR @event) where TR: IBaseEvent;
public class IntegrationBus
{
private readonly IDictionary _listeners = new Dictionary();
public void RegisterEventListener(string @event, HandleIntegrationEvent listener) where TR: IBaseEvent
{
// ERROR: cannot convert from HandleIntegrationEvent to HandleIntegrationEvent
_listeners.Add(@event, listener);
}
}
Насколько я понимаю, общее ограничение должно гарантировать, что экземпляр реализован интерфейс IBaseEvent.
А пока у меня просто мысленный блок
Подробнее здесь: https://stackoverflow.com/questions/787 ... dictionary