Делегат действия как член не компилируется

Почему этот код не компилируется:

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 для тестирования, который сохраняет делегат, переданный при подписке, и вызывает его при вызове публикации.

0
задан 79E09796 19 July 2012 в 16:16
поделиться