# AspireEventHubsExtensions Methods

- Package: [Aspire.Azure.Messaging.EventHubs](/reference/api/csharp/aspire.azure.messaging.eventhubs.md)
- Type: [AspireEventHubsExtensions](/reference/api/csharp/aspire.azure.messaging.eventhubs/aspireeventhubsextensions.md)
- Kind: `Methods`
- Members: `10`

Provides extension methods for registering Event Hubs clients in the services provided by the `Hosting.IHostApplicationBuilder`.

## AddAzureEventHubBufferedProducerClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsBufferedProducerSettings>, Action<IAzureClientBuilder<EventHubBufferedProducerClient, EventHubBufferedProducerClientOptions>>)

- Name: `AddAzureEventHubBufferedProducerClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsBufferedProducerSettings>, Action<IAzureClientBuilder<EventHubBufferedProducerClient, EventHubBufferedProducerClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Messaging.EventHubs/AspireEventHubsExtensions.cs#L175-L181)

Registers `Producer.EventHubBufferedProducerClient` as a singleton in the services provided by the `builder`.

```csharp
public static class AspireEventHubsExtensions
{
    public static void AddAzureEventHubBufferedProducerClient(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<AzureMessagingEventHubsBufferedProducerSettings>? configureSettings = null,
        Action<IAzureClientBuilder<EventHubBufferedProducerClient, EventHubBufferedProducerClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## 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<AzureMessagingEventHubsBufferedProducerSettings>`) `optional`
  An optional method that can be used for customizing the [AzureMessagingEventHubsBufferedProducerSettings](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubsbufferedproducersettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<EventHubBufferedProducerClient, EventHubBufferedProducerClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Thrown when neither [AzureMessagingEventHubsSettings.ConnectionString](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#connectionstring) nor [AzureMessagingEventHubsSettings.FullyQualifiedNamespace](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#fullyqualifiednamespace) is provided.

## Remarks

Reads the configuration from "Aspire:Azure:Messaging:EventHubs:{TClient}" section, where {TClient} is the type of Event Hubs client being configured, i.e. EventProcessorClient.

## AddAzureEventHubConsumerClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsConsumerSettings>, Action<IAzureClientBuilder<EventHubConsumerClient, EventHubConsumerClientOptions>>)

- Name: `AddAzureEventHubConsumerClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsConsumerSettings>, Action<IAzureClientBuilder<EventHubConsumerClient, EventHubConsumerClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Messaging.EventHubs/AspireEventHubsExtensions.cs#L222-L228)

Registers `Consumer.EventHubConsumerClient` as a singleton in the services provided by the `builder`.

```csharp
public static class AspireEventHubsExtensions
{
    public static void AddAzureEventHubConsumerClient(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<AzureMessagingEventHubsConsumerSettings>? configureSettings = null,
        Action<IAzureClientBuilder<EventHubConsumerClient, EventHubConsumerClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## 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<AzureMessagingEventHubsConsumerSettings>`) `optional`
  An optional method that can be used for customizing the [AzureMessagingEventHubsConsumerSettings](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubsconsumersettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<EventHubConsumerClient, EventHubConsumerClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Thrown when neither [AzureMessagingEventHubsSettings.ConnectionString](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#connectionstring) nor [AzureMessagingEventHubsSettings.FullyQualifiedNamespace](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#fullyqualifiednamespace) is provided.

## Remarks

Reads the configuration from "Aspire:Azure:Messaging:EventHubs:{TClient}" section, where {TClient} is the type of Event Hubs client being configured, i.e. EventProcessorClient.

## AddAzureEventHubProducerClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsProducerSettings>, Action<IAzureClientBuilder<EventHubProducerClient, EventHubProducerClientOptions>>)

- Name: `AddAzureEventHubProducerClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsProducerSettings>, Action<IAzureClientBuilder<EventHubProducerClient, EventHubProducerClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Messaging.EventHubs/AspireEventHubsExtensions.cs#L128-L134)

Registers `Producer.EventHubProducerClient` as a singleton in the services provided by the `builder`.

```csharp
public static class AspireEventHubsExtensions
{
    public static void AddAzureEventHubProducerClient(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<AzureMessagingEventHubsProducerSettings>? configureSettings = null,
        Action<IAzureClientBuilder<EventHubProducerClient, EventHubProducerClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## 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<AzureMessagingEventHubsProducerSettings>`) `optional`
  An optional method that can be used for customizing the [AzureMessagingEventHubsProducerSettings](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubsproducersettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<EventHubProducerClient, EventHubProducerClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Thrown when neither [AzureMessagingEventHubsSettings.ConnectionString](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#connectionstring) nor [AzureMessagingEventHubsSettings.FullyQualifiedNamespace](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#fullyqualifiednamespace) is provided.

## Remarks

Reads the configuration from "Aspire:Azure:Messaging:EventHubs:{TClient}" section, where {TClient} is the type of Event Hubs client being configured, i.e. EventProcessorClient.

## AddAzureEventProcessorClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsProcessorSettings>, Action<IAzureClientBuilder<EventProcessorClient, EventProcessorClientOptions>>)

- Name: `AddAzureEventProcessorClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsProcessorSettings>, Action<IAzureClientBuilder<EventProcessorClient, EventProcessorClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Messaging.EventHubs/AspireEventHubsExtensions.cs#L36-L42)

Registers `EventHubs.EventProcessorClient` as a singleton in the services provided by the `builder`.

```csharp
public static class AspireEventHubsExtensions
{
    public static void AddAzureEventProcessorClient(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<AzureMessagingEventHubsProcessorSettings>? configureSettings = null,
        Action<IAzureClientBuilder<EventProcessorClient, EventProcessorClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## 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<AzureMessagingEventHubsProcessorSettings>`) `optional`
  An optional method that can be used for customizing the [AzureMessagingEventHubsProcessorSettings](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubsprocessorsettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<EventProcessorClient, EventProcessorClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Thrown when neither [AzureMessagingEventHubsSettings.ConnectionString](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#connectionstring) nor [AzureMessagingEventHubsSettings.FullyQualifiedNamespace](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#fullyqualifiednamespace) is provided.

## Remarks

Reads the configuration from "Aspire:Azure:Messaging:EventHubs:{TClient}" section, where {TClient} is the type of Event Hubs client being configured, i.e. EventProcessorClient.

## AddAzurePartitionReceiverClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsPartitionReceiverSettings>, Action<IAzureClientBuilder<PartitionReceiver, PartitionReceiverOptions>>)

- Name: `AddAzurePartitionReceiverClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsPartitionReceiverSettings>, Action<IAzureClientBuilder<PartitionReceiver, PartitionReceiverOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Messaging.EventHubs/AspireEventHubsExtensions.cs#L82-L88)

Registers `Primitives.PartitionReceiver` as a singleton in the services provided by the `builder`.

```csharp
public static class AspireEventHubsExtensions
{
    public static void AddAzurePartitionReceiverClient(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<AzureMessagingEventHubsPartitionReceiverSettings>? configureSettings = null,
        Action<IAzureClientBuilder<PartitionReceiver, PartitionReceiverOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## 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<AzureMessagingEventHubsPartitionReceiverSettings>`) `optional`
  An optional method that can be used for customizing the [AzureMessagingEventHubsPartitionReceiverSettings](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubspartitionreceiversettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<PartitionReceiver, PartitionReceiverOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Thrown when neither [AzureMessagingEventHubsSettings.ConnectionString](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#connectionstring) nor [AzureMessagingEventHubsSettings.FullyQualifiedNamespace](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#fullyqualifiednamespace) is provided.

## Remarks

Reads the configuration from "Aspire:Azure:Messaging:EventHubs:{TClient}" section, where {TClient} is the type of Event Hubs client being configured, i.e. EventProcessorClient.

## AddKeyedAzureEventHubBufferedProducerClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsBufferedProducerSettings>, Action<IAzureClientBuilder<EventHubBufferedProducerClient, EventHubBufferedProducerClientOptions>>)

- Name: `AddKeyedAzureEventHubBufferedProducerClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsBufferedProducerSettings>, Action<IAzureClientBuilder<EventHubBufferedProducerClient, EventHubBufferedProducerClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Messaging.EventHubs/AspireEventHubsExtensions.cs#L199-L205)

Registers `Producer.EventHubBufferedProducerClient` as a singleton for given `name` in the services provided by the `builder`.

```csharp
public static class AspireEventHubsExtensions
{
    public static void AddKeyedAzureEventHubBufferedProducerClient(
        this IHostApplicationBuilder builder,
        string name,
        Action<AzureMessagingEventHubsBufferedProducerSettings>? configureSettings = null,
        Action<IAzureClientBuilder<EventHubBufferedProducerClient, EventHubBufferedProducerClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## 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<AzureMessagingEventHubsBufferedProducerSettings>`) `optional`
  An optional method that can be used for customizing the [AzureMessagingEventHubsBufferedProducerSettings](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubsbufferedproducersettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<EventHubBufferedProducerClient, EventHubBufferedProducerClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Thrown when neither [AzureMessagingEventHubsSettings.ConnectionString](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#connectionstring) nor [AzureMessagingEventHubsSettings.FullyQualifiedNamespace](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#fullyqualifiednamespace) is provided.

## Remarks

Reads the configuration from "Aspire:Azure:Messaging:EventHubs:{TClient}" section, where {TClient} is the type of Event Hubs client being configured, i.e. EventProcessorClient.

## AddKeyedAzureEventHubConsumerClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsConsumerSettings>, Action<IAzureClientBuilder<EventHubConsumerClient, EventHubConsumerClientOptions>>)

- Name: `AddKeyedAzureEventHubConsumerClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsConsumerSettings>, Action<IAzureClientBuilder<EventHubConsumerClient, EventHubConsumerClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Messaging.EventHubs/AspireEventHubsExtensions.cs#L246-L252)

Registers `Consumer.EventHubConsumerClient` as a singleton for given `name` in the services provided by the `builder`.

```csharp
public static class AspireEventHubsExtensions
{
    public static void AddKeyedAzureEventHubConsumerClient(
        this IHostApplicationBuilder builder,
        string name,
        Action<AzureMessagingEventHubsConsumerSettings>? configureSettings = null,
        Action<IAzureClientBuilder<EventHubConsumerClient, EventHubConsumerClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## 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<AzureMessagingEventHubsConsumerSettings>`) `optional`
  An optional method that can be used for customizing the [AzureMessagingEventHubsConsumerSettings](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubsconsumersettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<EventHubConsumerClient, EventHubConsumerClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Thrown when neither [AzureMessagingEventHubsSettings.ConnectionString](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#connectionstring) nor [AzureMessagingEventHubsSettings.FullyQualifiedNamespace](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#fullyqualifiednamespace) is provided.
- `ArgumentException` -- Thrown when the name argument is null or empty.

## Remarks

Reads the configuration from "Aspire:Azure:Messaging:EventHubs:{TClient}" section, where {TClient} is the type of Event Hubs client being configured, i.e. EventProcessorClient.

## AddKeyedAzureEventHubProducerClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsProducerSettings>, Action<IAzureClientBuilder<EventHubProducerClient, EventHubProducerClientOptions>>)

- Name: `AddKeyedAzureEventHubProducerClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsProducerSettings>, Action<IAzureClientBuilder<EventHubProducerClient, EventHubProducerClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Messaging.EventHubs/AspireEventHubsExtensions.cs#L151-L157)

Registers `Producer.EventHubProducerClient` as a singleton for given `name` in the services provided by the `builder`.

```csharp
public static class AspireEventHubsExtensions
{
    public static void AddKeyedAzureEventHubProducerClient(
        this IHostApplicationBuilder builder,
        string name,
        Action<AzureMessagingEventHubsProducerSettings>? configureSettings = null,
        Action<IAzureClientBuilder<EventHubProducerClient, EventHubProducerClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## 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<AzureMessagingEventHubsProducerSettings>`) `optional`
  An optional method that can be used for customizing the [AzureMessagingEventHubsProducerSettings](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubsproducersettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<EventHubProducerClient, EventHubProducerClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Thrown when neither [AzureMessagingEventHubsSettings.ConnectionString](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#connectionstring) nor [AzureMessagingEventHubsSettings.FullyQualifiedNamespace](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#fullyqualifiednamespace) is provided.

## Remarks

Reads the configuration from "Aspire:Azure:Messaging:EventHubs:{TClient}" section, where {TClient} is the type of Event Hubs client being configured, i.e. EventProcessorClient.

## AddKeyedAzureEventProcessorClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsProcessorSettings>, Action<IAzureClientBuilder<EventProcessorClient, EventProcessorClientOptions>>)

- Name: `AddKeyedAzureEventProcessorClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsProcessorSettings>, Action<IAzureClientBuilder<EventProcessorClient, EventProcessorClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Messaging.EventHubs/AspireEventHubsExtensions.cs#L59-L65)

Registers `EventHubs.EventProcessorClient` as a singleton for given `name` in the services provided by the `builder`.

```csharp
public static class AspireEventHubsExtensions
{
    public static void AddKeyedAzureEventProcessorClient(
        this IHostApplicationBuilder builder,
        string name,
        Action<AzureMessagingEventHubsProcessorSettings>? configureSettings = null,
        Action<IAzureClientBuilder<EventProcessorClient, EventProcessorClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## 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<AzureMessagingEventHubsProcessorSettings>`) `optional`
  An optional method that can be used for customizing the [AzureMessagingEventHubsProcessorSettings](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubsprocessorsettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<EventProcessorClient, EventProcessorClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Thrown when neither [AzureMessagingEventHubsSettings.ConnectionString](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#connectionstring) nor [AzureMessagingEventHubsSettings.FullyQualifiedNamespace](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#fullyqualifiednamespace) is provided.

## Remarks

Reads the configuration from "Aspire:Azure:Messaging:EventHubs:{TClient}" section, where {TClient} is the type of Event Hubs client being configured, i.e. EventProcessorClient.

## AddKeyedAzurePartitionReceiverClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsPartitionReceiverSettings>, Action<IAzureClientBuilder<PartitionReceiver, PartitionReceiverOptions>>)

- Name: `AddKeyedAzurePartitionReceiverClient(IHostApplicationBuilder, string, Action<AzureMessagingEventHubsPartitionReceiverSettings>, Action<IAzureClientBuilder<PartitionReceiver, PartitionReceiverOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Messaging.EventHubs/AspireEventHubsExtensions.cs#L105-L111)

Registers `Primitives.PartitionReceiver` as a singleton for given `name` in the services provided by the `builder`.

```csharp
public static class AspireEventHubsExtensions
{
    public static void AddKeyedAzurePartitionReceiverClient(
        this IHostApplicationBuilder builder,
        string name,
        Action<AzureMessagingEventHubsPartitionReceiverSettings>? configureSettings = null,
        Action<IAzureClientBuilder<PartitionReceiver, PartitionReceiverOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## 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<AzureMessagingEventHubsPartitionReceiverSettings>`) `optional`
  An optional method that can be used for customizing the [AzureMessagingEventHubsPartitionReceiverSettings](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubspartitionreceiversettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<PartitionReceiver, PartitionReceiverOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Thrown when neither [AzureMessagingEventHubsSettings.ConnectionString](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#connectionstring) nor [AzureMessagingEventHubsSettings.FullyQualifiedNamespace](/reference/api/csharp/aspire.azure.messaging.eventhubs/azuremessagingeventhubssettings/properties.md#fullyqualifiednamespace) is provided.

## Remarks

Reads the configuration from "Aspire:Azure:Messaging:EventHubs:{TClient}" section, where {TClient} is the type of Event Hubs client being configured, i.e. EventProcessorClient.
