def get(name)
      name = name.to_sym
      return @cache[name] if @cache.keys.include?(name)
      
      if !has_config?(name) and parent_context and parent_context.has?(name)
        return parent_context.get(name)
      else
        object = object_factory.construct_new(name,self)
        object.instance_variable_set(:@_conject_contextual_name, name.to_s)
        @cache[name] = object unless no_cache?(name)
        return object
      end
    end
def get(name)
      name = name.to_sym
      return @cache[name] if @cache.keys.include?(name)
      
      if !has_config?(name) and parent_context and parent_context.has?(name)
        return parent_context.get(name)
      else
        object = object_factory.construct_new(name,self)
        object.instance_variable_set(:@_conject_contextual_name, name.to_s)
        @cache[name] = object unless no_cache?(name)
        return object
      end
    end
Retrieve a named object from this context.
   If the object is already existant in this context, return it.
   If we have a parent context and it contains the requested object, get and return object from parent context. (Recursive upward search)
   If the object exists nowhere in this or a super context: construct, cache and return a new instance of the requested object using the object factory.