static void Main(string[] args) { var factory = new Factory("MyApp", new MyLogger()); // Register a dependency. factory.Dep<IMyDependency>(new MyDependency()); // Register the type. factory.Type<IMyType>(typeof(MyType)); // Create an instance with dependency injected. var myFactoryCreatedObject = factory.CreateInterface<IMyType>(); Console.WriteLine(myFactoryCreatedObject.Message); }