public ServiceOptions()

in src/Microsoft.Azure.SignalR.AspNet/ServiceOptions.cs [21:63]


    public ServiceOptions()
    {
        var count = ConfigurationManager.ConnectionStrings.Count;
        string? connectionString = null;
        var endpoints = new List<ServiceEndpoint>();
        var connectionStringKeyPrefix = $"{Constants.Keys.ConnectionStringDefaultKey}:";
        for (var i = 0; i < count; i++)
        {
            var setting = ConfigurationManager.ConnectionStrings[i];

            if (setting.Name == Constants.Keys.ConnectionStringDefaultKey)
            {
                connectionString = setting.ConnectionString;
            }
            else if (setting.Name.StartsWith(connectionStringKeyPrefix) && !string.IsNullOrEmpty(setting.ConnectionString))
            {
                endpoints.Add(new ServiceEndpoint(setting.Name, setting.ConnectionString));
            }
        }

        // Fallback to use AppSettings
        if (string.IsNullOrEmpty(connectionString) && endpoints.Count == 0)
        {
            foreach (var key in ConfigurationManager.AppSettings.AllKeys)
            {
                if (key == Constants.Keys.ConnectionStringDefaultKey)
                {
                    connectionString = ConfigurationManager.AppSettings[key];
                }
                else if (key.StartsWith(connectionStringKeyPrefix))
                {
                    var value = ConfigurationManager.AppSettings[key];
                    if (!string.IsNullOrEmpty(value))
                    {
                        endpoints.Add(new ServiceEndpoint(key, value));
                    }
                }
            }
        }

        ConnectionString = connectionString;
        Endpoints = endpoints.ToArray();
    }