/// <summary>
        /// Starts the context wit a default value.
        /// </summary>
        /// <returns>The disposable handle for the context.</returns>
        /// <param name="initial">The initial value.</param>
        public static IDisposable StartContext(T initial = default(T))
        {
            var res = new ContextGuard();

            Settings = initial;
            return(res);
        }
        /// <summary>
        /// Starts the context wit a default value.
        /// </summary>
        /// <returns>The disposable handle for the context.</returns>
        /// <param name="initial">The initial value.</param>
        public static IDisposable StartContext(string settingsKey, T initial = default(T))
        {
            contextSettingsType = settingsKey;
            var res = new ContextGuard();

            Settings = initial;
            return(res);
        }