File: AspireRedisClientBuilder.cs
Web Access
Project: src\src\Components\Aspire.StackExchange.Redis\Aspire.StackExchange.Redis.csproj (Aspire.StackExchange.Redis)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using Microsoft.Extensions.Hosting;
using StackExchange.Redis;
 
namespace Aspire.StackExchange.Redis;
 
/// <summary>
/// Provides a builder for configuring Redis client services using StackExchange.Redis in an Aspire application.
/// </summary>
/// <param name="hostBuilder">The <see cref="IHostApplicationBuilder"/> with which services are being registered.</param>
/// <param name="settings">The <see cref="StackExchangeRedisSettings"/> to configure the Redis client.</param>
/// <param name="serviceKey">The service key used to register the <see cref="IConnectionMultiplexer"/> service, if any.</param>
public sealed class AspireRedisClientBuilder(IHostApplicationBuilder hostBuilder, StackExchangeRedisSettings settings, string? serviceKey)
{
    /// <summary>
    /// Gets the <see cref="IHostApplicationBuilder"/> with which services are being registered.
    /// </summary>
    public IHostApplicationBuilder HostBuilder { get; } = hostBuilder ?? throw new ArgumentNullException(nameof(hostBuilder));
 
    /// <summary>
    /// Gets the <see cref="StackExchangeRedisSettings"/> used to configure the Redis client.
    /// </summary>
    public StackExchangeRedisSettings Settings { get; } = settings;
 
    /// <summary>
    /// Gets the service key used to register the <see cref="IConnectionMultiplexer"/> service, if any.
    /// </summary>
    public string? ServiceKey { get; } = serviceKey;
}