protected EngineComponent(IServiceContainer services) { if (services == null) { throw new ArgumentNullException("services"); } this.services = services; services.AddService(typeof(T), this); }