Exemplo n.º 1
0
        /// <summary>
        /// Answer the value associated with <paramref name="name"/>.
        /// </summary>
        /// <typeparam name="T">The type of the value associated with name.</typeparam>
        /// <param name="name">The name of the value to answer.</param>
        /// <returns></returns>
        public virtual T ReadFrom <T>(string name)
        {
            var supplier = GetRequiredSupplier <T>(name);

            until.Completes();

            lock (@lock)
            {
                return(supplier.Invoke());
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Answer the value associated with <paramref name="name"/>.
        /// </summary>
        /// <typeparam name="T">The type of the value associated with name.</typeparam>
        /// <param name="name">The name of the value to answer.</param>
        /// <returns></returns>
        public virtual T ReadFrom <T>(string name)
        {
            if (!suppliers.ContainsKey(name))
            {
                throw new ArgumentOutOfRangeException(nameof(name), $"Unknow supplier: {name}");
            }

            until.Completes();

            lock (@lock)
            {
                return((suppliers[name] as Func <T>).Invoke());
            }
        }