# AspireKafkaConsumerExtensions Methods

- Package: [Aspire.Confluent.Kafka](/reference/api/csharp/aspire.confluent.kafka.md)
- Type: [AspireKafkaConsumerExtensions](/reference/api/csharp/aspire.confluent.kafka/aspirekafkaconsumerextensions.md)
- Kind: `Methods`
- Members: `12`

Extension methods for connecting to a Kafka broker.

## AddKafkaConsumer(IHostApplicationBuilder, string)

- Name: `AddKafkaConsumer(IHostApplicationBuilder, string)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaConsumerExtensions.cs#L27)

```csharp
public static class AspireKafkaConsumerExtensions
{
    public static void AddKafkaConsumer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string connectionName)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `connectionName` (`string`)

## AddKafkaConsumer(IHostApplicationBuilder, string, Action<KafkaConsumerSettings>)

- Name: `AddKafkaConsumer(IHostApplicationBuilder, string, Action<KafkaConsumerSettings>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaConsumerExtensions.cs#L31)

```csharp
public static class AspireKafkaConsumerExtensions
{
    public static void AddKafkaConsumer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<KafkaConsumerSettings>? configureSettings)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `connectionName` (`string`)
- `configureSettings` (`Action<KafkaConsumerSettings>`)

## AddKafkaConsumer(IHostApplicationBuilder, string, Action<ConsumerBuilder<TKey, TValue>>)

- Name: `AddKafkaConsumer(IHostApplicationBuilder, string, Action<ConsumerBuilder<TKey, TValue>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaConsumerExtensions.cs)

```csharp
public static class AspireKafkaConsumerExtensions
{
    public static void AddKafkaConsumer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<ConsumerBuilder<TKey, TValue>>? configureBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `connectionName` (`string`)
- `configureBuilder` (`Action<ConsumerBuilder<TKey, TValue>>`)

## AddKafkaConsumer(IHostApplicationBuilder, string, Action<IServiceProvider, ConsumerBuilder<TKey, TValue>>)

- Name: `AddKafkaConsumer(IHostApplicationBuilder, string, Action<IServiceProvider, ConsumerBuilder<TKey, TValue>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaConsumerExtensions.cs)

```csharp
public static class AspireKafkaConsumerExtensions
{
    public static void AddKafkaConsumer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<IServiceProvider, ConsumerBuilder<TKey, TValue>>? configureBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `connectionName` (`string`)
- `configureBuilder` (`Action<IServiceProvider, ConsumerBuilder<TKey, TValue>>`)

## AddKafkaConsumer(IHostApplicationBuilder, string, Action<KafkaConsumerSettings>, Action<ConsumerBuilder<TKey, TValue>>)

- Name: `AddKafkaConsumer(IHostApplicationBuilder, string, Action<KafkaConsumerSettings>, Action<ConsumerBuilder<TKey, TValue>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaConsumerExtensions.cs)

```csharp
public static class AspireKafkaConsumerExtensions
{
    public static void AddKafkaConsumer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<KafkaConsumerSettings>? configureSettings,
        Action<ConsumerBuilder<TKey, TValue>>? configureBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `connectionName` (`string`)
- `configureSettings` (`Action<KafkaConsumerSettings>`)
- `configureBuilder` (`Action<ConsumerBuilder<TKey, TValue>>`)

## AddKafkaConsumer(IHostApplicationBuilder, string, Action<KafkaConsumerSettings>, Action<IServiceProvider, ConsumerBuilder<TKey, TValue>>)

- Name: `AddKafkaConsumer(IHostApplicationBuilder, string, Action<KafkaConsumerSettings>, Action<IServiceProvider, ConsumerBuilder<TKey, TValue>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaConsumerExtensions.cs)

Registers `Kafka.IConsumer`2` as a singleton in the services provided by the `builder`.

```csharp
public static class AspireKafkaConsumerExtensions
{
    public static void AddKafkaConsumer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<KafkaConsumerSettings>? configureSettings,
        Action<IServiceProvider, ConsumerBuilder<TKey, TValue>>? configureBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `connectionName` (`string`)
  A name used to retrieve the connection string from the ConnectionStrings configuration section.
- `configureSettings` (`Action<KafkaConsumerSettings>`)
  An optional method for customizing the [KafkaConsumerSettings](/reference/api/csharp/aspire.confluent.kafka/kafkaconsumersettings.md).
- `configureBuilder` (`Action<IServiceProvider, ConsumerBuilder<TKey, TValue>>`)
  An optional method used for customizing the `Kafka.ConsumerBuilder`2`.

## Remarks

Reads the configuration from "Aspire:Kafka:Consumer" section.

## AddKeyedKafkaConsumer(IHostApplicationBuilder, string)

- Name: `AddKeyedKafkaConsumer(IHostApplicationBuilder, string)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaConsumerExtensions.cs#L59-L62)

```csharp
public static class AspireKafkaConsumerExtensions
{
    public static void AddKeyedKafkaConsumer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string name)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `name` (`string`)

## AddKeyedKafkaConsumer(IHostApplicationBuilder, string, Action<KafkaConsumerSettings>)

- Name: `AddKeyedKafkaConsumer(IHostApplicationBuilder, string, Action<KafkaConsumerSettings>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaConsumerExtensions.cs#L67-L70)

```csharp
public static class AspireKafkaConsumerExtensions
{
    public static void AddKeyedKafkaConsumer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string name,
        Action<KafkaConsumerSettings>? configureSettings)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `name` (`string`)
- `configureSettings` (`Action<KafkaConsumerSettings>`)

## AddKeyedKafkaConsumer(IHostApplicationBuilder, string, Action<ConsumerBuilder<TKey, TValue>>)

- Name: `AddKeyedKafkaConsumer(IHostApplicationBuilder, string, Action<ConsumerBuilder<TKey, TValue>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaConsumerExtensions.cs)

```csharp
public static class AspireKafkaConsumerExtensions
{
    public static void AddKeyedKafkaConsumer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string name,
        Action<ConsumerBuilder<TKey, TValue>>? configureBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `name` (`string`)
- `configureBuilder` (`Action<ConsumerBuilder<TKey, TValue>>`)

## AddKeyedKafkaConsumer(IHostApplicationBuilder, string, Action<IServiceProvider, ConsumerBuilder<TKey, TValue>>)

- Name: `AddKeyedKafkaConsumer(IHostApplicationBuilder, string, Action<IServiceProvider, ConsumerBuilder<TKey, TValue>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaConsumerExtensions.cs)

```csharp
public static class AspireKafkaConsumerExtensions
{
    public static void AddKeyedKafkaConsumer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string name,
        Action<IServiceProvider, ConsumerBuilder<TKey, TValue>>? configureBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `name` (`string`)
- `configureBuilder` (`Action<IServiceProvider, ConsumerBuilder<TKey, TValue>>`)

## AddKeyedKafkaConsumer(IHostApplicationBuilder, string, Action<KafkaConsumerSettings>, Action<ConsumerBuilder<TKey, TValue>>)

- Name: `AddKeyedKafkaConsumer(IHostApplicationBuilder, string, Action<KafkaConsumerSettings>, Action<ConsumerBuilder<TKey, TValue>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaConsumerExtensions.cs)

```csharp
public static class AspireKafkaConsumerExtensions
{
    public static void AddKeyedKafkaConsumer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string name,
        Action<KafkaConsumerSettings>? configureSettings,
        Action<ConsumerBuilder<TKey, TValue>>? configureBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `name` (`string`)
- `configureSettings` (`Action<KafkaConsumerSettings>`)
- `configureBuilder` (`Action<ConsumerBuilder<TKey, TValue>>`)

## AddKeyedKafkaConsumer(IHostApplicationBuilder, string, Action<KafkaConsumerSettings>, Action<IServiceProvider, ConsumerBuilder<TKey, TValue>>)

- Name: `AddKeyedKafkaConsumer(IHostApplicationBuilder, string, Action<KafkaConsumerSettings>, Action<IServiceProvider, ConsumerBuilder<TKey, TValue>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaConsumerExtensions.cs)

Registers `Kafka.IConsumer`2` as a keyed singleton for the given `name` in the services provided by the `builder`.

```csharp
public static class AspireKafkaConsumerExtensions
{
    public static void AddKeyedKafkaConsumer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string name,
        Action<KafkaConsumerSettings>? configureSettings,
        Action<IServiceProvider, ConsumerBuilder<TKey, TValue>>? configureBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `name` (`string`)
  The name of the component, which is used as the `ServiceDescriptor.ServiceKey` of the service and also to retrieve the connection string from the ConnectionStrings configuration section.
- `configureSettings` (`Action<KafkaConsumerSettings>`)
  An optional method for customizing the [KafkaConsumerSettings](/reference/api/csharp/aspire.confluent.kafka/kafkaconsumersettings.md).
- `configureBuilder` (`Action<IServiceProvider, ConsumerBuilder<TKey, TValue>>`)
  An optional method used for customizing the `Kafka.ConsumerBuilder`2`.

## Remarks

Reads the configuration from "Aspire:Kafka:Consumer:{name}" section.
