Exemplo n.º 1
0
 public KeyedFactory(
     List <Tuple <TKey, Type> > typePairs,
     Instantiator instantiator)
 {
     _typeMap      = typePairs.ToDictionary(x => x.First, x => x.Second);
     _instantiator = instantiator;
 }
Exemplo n.º 2
0
        public object GetInstance(Type contractType)
        {
            if (!_hasInstance)
            {
                if (_createMethod != null)
                {
                    _instance = _createMethod(_container);
                }
                else
                {
                    if (_instantiator == null)
                    {
                        _instantiator = _container.Resolve <Instantiator>();
                    }

                    _instance = _instantiator.Instantiate(GetTypeToInstantiate(contractType));
                }

                if (_instance == null)
                {
                    throw new ZenjectException(
                              "Unable to instantiate type '{0}' in SingletonLazyCreator".With(contractType));
                }

                _hasInstance = true;
            }

            return(_instance);
        }
Exemplo n.º 3
0
        public DiContainer()
        {
            _singletonMap = new SingletonProviderMap(this);
            _instantiator = new Instantiator(this);

            Bind <DiContainer>().To(this);
            Bind <Instantiator>().To(_instantiator);
        }
Exemplo n.º 4
0
        public virtual TContract Create(params object[] constructorArgs)
        {
            if (_instantiator == null)
            {
                _instantiator = _container.Resolve <Instantiator>();
            }

            return(_instantiator.Instantiate <TConcrete>(constructorArgs));
        }
Exemplo n.º 5
0
        public ListFactory(
            List <Type> implTypes,
            Instantiator instantiator)
        {
            foreach (var type in implTypes)
            {
                Assert.That(type.DerivesFromOrEqual <T>());
            }

            _implTypes    = implTypes;
            _instantiator = instantiator;
        }
Exemplo n.º 6
0
        public override object GetInstance(Type contractType)
        {
            if (_instantiator == null)
            {
                _instantiator = _container.Resolve <Instantiator>();
            }

            var obj = _instantiator.Instantiate(GetTypeToInstantiate(contractType));

            Assert.That(obj != null);
            return(obj);
        }
Exemplo n.º 7
0
            public object GetInstance(Type contractType)
            {
                if (_instance == null)
                {
                    if (_instantiator == null)
                    {
                        _instantiator = _container.Resolve <Instantiator>();
                    }

                    _instance = _instantiator.Instantiate(GetTypeToInstantiate(contractType));
                    Assert.That(_instance != null);
                }

                return(_instance);
            }