object Instantiate(Type contractType) { if (_createMethod != null) { return(_createMethod(_container)); } var concreteType = GetTypeToInstantiate(contractType); if (!UnityUtil.IsNull(_id.Prefab)) { Assert.That(concreteType.DerivesFrom <Component>(), "Expected '{0}' to derive from 'Component'", concreteType.Name); if (_gameObjInstantiator == null) { _gameObjInstantiator = _container.Resolve <GameObjectInstantiator>(); } return(_gameObjInstantiator.Instantiate(_id.Type, _id.Prefab)); } if (_instantiator == null) { _instantiator = _container.Resolve <Instantiator>(); } return(_instantiator.Instantiate(concreteType)); }
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, InjectContext context) { if (_instantiator == null) { _instantiator = _container.Resolve <Instantiator>(); } var obj = _instantiator.Instantiate(GetTypeToInstantiate(contractType)); Assert.That(obj != null); return(obj); }
public DiContainer() { _singletonMap = new SingletonProviderMap(this); _prefabSingletonMap = new PrefabSingletonProviderMap(this); _instantiator = new Instantiator(this); Bind <DiContainer>().To(this); Bind <Instantiator>().To(_instantiator); Bind <SingletonProviderMap>().To(_singletonMap); Bind <PrefabSingletonProviderMap>().To(_prefabSingletonMap); Bind <SingletonInstanceHelper>().To(new SingletonInstanceHelper(_singletonMap, _prefabSingletonMap)); }