public static void RegisterByType(Type type, TypeCreationMode mode)
        {
            lock (Instances)
            {
                if (mode == TypeCreationMode.Lazy)
                {
                    if (!Instances.ContainsKey(type))
                    {
                        Instances.Add(type, null);
                    }
                }
                else if (mode == TypeCreationMode.Normal)
                {
                    if (Instances.ContainsKey(type))
                    {
                        Instances.Remove(type);
                    }

                    Instances.Add(type, Activator.CreateInstance(type));
                }
            }
        }
 public static void Register <T>(TypeCreationMode mode)
 {
     RegisterByType(typeof(T), mode);
 }