このコードがコンパイルされない理由:
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]' を 'T' に暗黙的に変換できませんSystem.Action [mscorlib.dll]' ..FakeESBSingleMessage.cs 21 32
エラー 36 デリゲート 'System.Action' に無効な引数があります..\FakeESBSingleMessage.cs 16 13
サブスクライブに渡されたデリゲートを保存し、パブリッシュが呼び出されたときにそれを呼び出す、テスト用の偽の ESB コンポーネントを作成しようとしています。