public GameObjectSingletonProvider(
            GameObjectSingletonLazyCreator creator,
            SingletonId id,
            SingletonRegistry singletonRegistry)
        {
            _singletonRegistry = singletonRegistry;
            _id = id;
            _creator = creator;

            Init();
        }
        public GameObjectSingletonProvider(
            GameObjectSingletonLazyCreator creator,
            SingletonId id,
            SingletonRegistry singletonRegistry)
        {
            _singletonRegistry = singletonRegistry;
            _id      = id;
            _creator = creator;

            Init();
        }
        GameObjectSingletonLazyCreator AddCreator(SingletonId id)
        {
            GameObjectSingletonLazyCreator creator;

            if (!_creators.TryGetValue(id, out creator))
            {
                creator = new GameObjectSingletonLazyCreator(_container, this, id);
                _creators.Add(id, creator);
            }

            return(creator);
        }
        GameObjectSingletonLazyCreator AddCreator(SingletonId id)
        {
            GameObjectSingletonLazyCreator creator;

            if (!_creators.TryGetValue(id, out creator))
            {
                creator = new GameObjectSingletonLazyCreator(_container, this, id);
                _creators.Add(id, creator);
            }

            return creator;
        }