public object GetService(Type serviceType) { if (typeof(IController).IsAssignableFrom(serviceType)) { return(ChildContainer.Resolve(serviceType)); } return(ChildContainer.IsRegistered(serviceType) ? ChildContainer.Resolve(serviceType) : null); }
private bool IsRegistered(Type typeToCheck) { var isRegistered = true; if (typeToCheck.IsInterface || typeToCheck.IsAbstract) { isRegistered = ChildContainer.IsRegistered(typeToCheck); if (!isRegistered && typeToCheck.IsGenericType) { var openGenericType = typeToCheck.GetGenericTypeDefinition(); isRegistered = ChildContainer.IsRegistered(openGenericType); } } return(isRegistered); }