Se você não gosta de nada do IoC que existe por aí, vai adorar esta maneira sofisticada de injetar suas dependências manualmente.
Primeiro, se você não sabe o que diabos é DI, tenho certeza de que você usa esta linha de código várias vezes:
MyBusinessLayer _myBusinessLayer = new MyBusinessLayer();
var results = _myBusinessLayer.GetAll();
Não use mais. Use isso.
public static class BL<T> where T : new()
{
public static T GenericBL
{
get { return new T(); }
}
}
var results = BL<MyBusinessLayer>.GenericBL.GetAll();
Muito simples, não acha?