SR
using FxResources.Microsoft.Extensions.Configuration;
using System.Resources;
using System.Runtime.CompilerServices;
namespace System
{
    internal static class SR
    {
        private static readonly bool s_usingResourceKeys = GetUsingResourceKeysSwitchValue();
        private static ResourceManager s_resourceManager;
        internal static ResourceManager ResourceManager => s_resourceManager ?? (s_resourceManager = new ResourceManager(typeof(FxResources.Microsoft.Extensions.Configuration.SR)));
        internal static string Error_NoSources => GetResourceString("Error_NoSources");
        internal static string InvalidNullArgument => GetResourceString("InvalidNullArgument");
        internal static string StreamConfigurationProvidersAlreadyLoaded => GetResourceString("StreamConfigurationProvidersAlreadyLoaded");
        internal static string StreamConfigurationSourceStreamCannotBeNull => GetResourceString("StreamConfigurationSourceStreamCannotBeNull");
        private static bool GetUsingResourceKeysSwitchValue()
        {
            if (!AppContext.TryGetSwitch("System.Resources.UseSystemResourceKeys", out bool isEnabled))
                return false;
            return isEnabled;
        }
        internal static bool UsingResourceKeys()
        {
            return s_usingResourceKeys;
        }
        private static string GetResourceString(string resourceKey)
        {
            if (!UsingResourceKeys()) {
                string result = null;
                try {
                    result = ResourceManager.GetString(resourceKey);
                    return result;
                } catch (MissingManifestResourceException) {
                    return result;
                }
            }
            return resourceKey;
        }
        private static string GetResourceString(string resourceKey, string defaultString)
        {
            string resourceString = GetResourceString(resourceKey);
            if (!(resourceKey == resourceString) && resourceString != null)
                return resourceString;
            return defaultString;
        }
        [System.Runtime.CompilerServices.NullableContext(1)]
        internal static string Format(string resourceFormat, [System.Runtime.CompilerServices.Nullable(2)] object p1)
        {
            if (UsingResourceKeys())
                return string.Join(", ", resourceFormat, p1);
            return string.Format(resourceFormat, p1);
        }
        [System.Runtime.CompilerServices.NullableContext(1)]
        internal static string Format(string resourceFormat, [System.Runtime.CompilerServices.Nullable(2)] object p1, [System.Runtime.CompilerServices.Nullable(2)] object p2)
        {
            if (UsingResourceKeys())
                return string.Join(", ", resourceFormat, p1, p2);
            return string.Format(resourceFormat, p1, p2);
        }
        [System.Runtime.CompilerServices.NullableContext(2)]
        [return: System.Runtime.CompilerServices.Nullable(1)]
        internal static string Format([System.Runtime.CompilerServices.Nullable(1)] string resourceFormat, object p1, object p2, object p3)
        {
            if (UsingResourceKeys())
                return string.Join(", ", resourceFormat, p1, p2, p3);
            return string.Format(resourceFormat, p1, p2, p3);
        }
        [System.Runtime.CompilerServices.NullableContext(1)]
        internal static string Format(string resourceFormat, [System.Runtime.CompilerServices.Nullable(2)] params object[] args)
        {
            if (args != null) {
                if (UsingResourceKeys())
                    return resourceFormat + ", " + string.Join(", ", args);
                return string.Format(resourceFormat, args);
            }
            return resourceFormat;
        }
        [System.Runtime.CompilerServices.NullableContext(1)]
        internal static string Format([System.Runtime.CompilerServices.Nullable(2)] IFormatProvider provider, string resourceFormat, [System.Runtime.CompilerServices.Nullable(2)] object p1)
        {
            if (UsingResourceKeys())
                return string.Join(", ", resourceFormat, p1);
            return string.Format(provider, resourceFormat, p1);
        }
        [System.Runtime.CompilerServices.NullableContext(2)]
        [return: System.Runtime.CompilerServices.Nullable(1)]
        internal static string Format(IFormatProvider provider, [System.Runtime.CompilerServices.Nullable(1)] string resourceFormat, object p1, object p2)
        {
            if (UsingResourceKeys())
                return string.Join(", ", resourceFormat, p1, p2);
            return string.Format(provider, resourceFormat, p1, p2);
        }
        [System.Runtime.CompilerServices.NullableContext(2)]
        [return: System.Runtime.CompilerServices.Nullable(1)]
        internal static string Format(IFormatProvider provider, [System.Runtime.CompilerServices.Nullable(1)] string resourceFormat, object p1, object p2, object p3)
        {
            if (UsingResourceKeys())
                return string.Join(", ", resourceFormat, p1, p2, p3);
            return string.Format(provider, resourceFormat, p1, p2, p3);
        }
        [System.Runtime.CompilerServices.NullableContext(1)]
        internal static string Format([System.Runtime.CompilerServices.Nullable(2)] IFormatProvider provider, string resourceFormat, [System.Runtime.CompilerServices.Nullable(2)] params object[] args)
        {
            if (args != null) {
                if (UsingResourceKeys())
                    return resourceFormat + ", " + string.Join(", ", args);
                return string.Format(provider, resourceFormat, args);
            }
            return resourceFormat;
        }
    }
}