public KeyedFactory( List <Tuple <TKey, Type> > typePairs, Instantiator instantiator) { _typeMap = typePairs.ToDictionary(x => x.First, x => x.Second); _instantiator = instantiator; }
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); }
public DiContainer() { _singletonMap = new SingletonProviderMap(this); _instantiator = new Instantiator(this); Bind <DiContainer>().To(this); Bind <Instantiator>().To(_instantiator); }
public virtual TContract Create(params object[] constructorArgs) { if (_instantiator == null) { _instantiator = _container.Resolve <Instantiator>(); } return(_instantiator.Instantiate <TConcrete>(constructorArgs)); }
public ListFactory( List <Type> implTypes, Instantiator instantiator) { foreach (var type in implTypes) { Assert.That(type.DerivesFromOrEqual <T>()); } _implTypes = implTypes; _instantiator = instantiator; }
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); }
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); }