public static void Main()
c.Register(typeof(IControl<>));
c.Register<FooControls>();
public interface IControl<T>
public class Control<T> : IControl<T>
public class ControlA : Control<double>
public class ControlB : Control<double>
public class ControlC : Control<double>
public FooControls(IControl<double> a, IControl<double> b, IControl<double> c)