string Name { get; set; }
class RealPerson : IPerson
public string Name { get; set; }
class DiUserControlBase : UserControl
public static IUnityContainer Container { get; set; }
class DiUserControl<T> : DiUserControlImpl
Console.WriteLine("Doing Build Up");
Container.BuildUp<T>((T)(object)this);
Console.WriteLine("Done With Build Up");
class MyCustomControl : DiUserControl<MyCustomControl>
public IPerson ThePerson { get; set; }
static public void Main()
var container = new UnityContainer();
container.RegisterType<IPerson, RealPerson>();
DiUserControlBase.Container = container;
var ctrl = new MyCustomControl();
Console.WriteLine($"Name: {ctrl.ThePerson.Name}");