public static T GetService <T>(this Cat cat) => (T)cat.GetService(typeof(T));
public static T GetServices <T>(this Cat cat) { return(default(T)); }
public static IEnumerable <T> GetServices <T>(this Cat cat) => cat.GetService <IEnumerable <T> >();
public static Cat CreateChild(this Cat cat) => new Cat(cat);
public static Cat Register <TServiceType>(this Cat cat, Func <Cat, TServiceType> factory, Lifetime lifetime) { cat.Register(new ServiceRegistry(typeof(TServiceType), lifetime, (_, arguments) => factory(_))); return(cat); }
public static bool HasRegistry(this Cat cat, Type serviceType) => cat._root._registries.ContainsKey(serviceType);
public static bool HasRegistry <T>(this Cat cat) => cat.HasRegistry(typeof(T));