private IProviderWrapper ResolveProvider(Type type, string name) { IProviderWrapper provider = null; _providers.TryGetValue(new ContainerKey(type, name), out provider); return(provider); }
/// <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)); }
/// <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)); }