Example #1
0
        private IProviderWrapper ResolveProvider(Type type, string name)
        {
            IProviderWrapper provider = null;

            _providers.TryGetValue(new ContainerKey(type, name), out provider);
            return(provider);
        }
Example #2
0
        /// <summary>
        /// Попытаться получить объект нужного типа. Если объекта нет, то возвращет null не кидая исключения.
        /// </summary>
        public object TryResolve(Type type, string name = null)
        {
            IProviderWrapper provider = ResolveProvider(type, name);

            if (provider == null)
            {
                return(null);
            }
            return(provider.GetObject(this));
        }
Example #3
0
        /// <summary>
        /// Получить объект нужного типа
        /// </summary>
        public object Resolve(Type type, string name = null)
        {
            IProviderWrapper provider = ResolveProvider(type, name);

            if (provider == null)
            {
                throw new ContainerException("Can't resolve type " + type.FullName +
                                             (name == null ? "" : " registered with name \"" + name + "\""));
            }

            return(provider.GetObject(this));
        }