using System;
public class Program
{
public static void Main()
ITaskAgent<ITaskData> agent = new MyConcreteAgent();
}
public class MyConcreteAgent : ITaskAgent<ITaskData>
public interface ITaskData {}
public interface ITaskAgent<TTaskData> {}