Почему этот код не компилируется:
public class FakeESBSingleMessage<T> : IBusEnabledClass
{
private Action<T> SubscribedAction { get; set; }
#region IBusEnabledClass
public void Publish<T>(T message)
{
SubscribedAction(message);
}
public void Subscribe<T>(string ID, Action<T> action)
{
SubscribedAction = action;
}
#endregion
}
Это дает следующие ошибки:
Ошибка 37. Аргумент 1 :не может преобразовать из «T [..FakeESBSingleMessage.cs (8 )]» в «T»..FakeESBSingleMessage.cs 16 30
Ошибка 39. Не удается неявно преобразовать тип «System.Action [mscorlib.dll]» в «System.Action [mscorlib.dll]».. FakeESBSingleMessage.cs 21 32
Ошибка 36 Делегат «System.Action» имеет недопустимые аргументы..\FakeESBSingleMessage.cs 16 13
Я пытаюсь создать поддельный компонент ESB для тестирования, который сохраняет делегат, переданный при подписке, и вызывает его при вызове публикации.