Я не уверен, правильно ли я понимаю, но думаю, что, возможно, вам нужен контейнер Dependency Injection.Взгляните на Inversion Of Control / Dependency Injection шаблонов.
Microsoft Patterns & Practices предлагает реализацию контейнера DI под названием Unity .Существуют и другие проекты с открытым исходным кодом, такие как Castle Windsor и другие
. Вы можете зарегистрировать типы в контейнере, указав, например, что вы хотите, чтобы некоторые типы были одноэлементными:
IUnityContainer container = new UnityContainer();
container.RegisterType<MyClass>(new ContainerControlledLifetimeManager());
...
var mySingletonType = container.Resolve<MyClass>(); // All calls to this method will
// return the same instance
IoC /На самом деле DI - это нечто большее, но я надеюсь, что этот пример будет вам полезен в качестве отправной точки.