# IDistributedApplicationBuilderExtensions Methods

- Package: [CommunityToolkit.Aspire.Hosting.Dapr](/reference/api/csharp/communitytoolkit.aspire.hosting.dapr.md)
- Type: [IDistributedApplicationBuilderExtensions](/reference/api/csharp/communitytoolkit.aspire.hosting.dapr/idistributedapplicationbuilderextensions.md)
- Kind: `Methods`
- Members: `4`

Extensions to `Hosting.IDistributedApplicationBuilder` related to Dapr.

## AddDapr(IDistributedApplicationBuilder, Action<DaprOptions>)

- Name: `AddDapr(IDistributedApplicationBuilder, Action<DaprOptions>)`
- Modifiers: `extension`
- Returns: `IDistributedApplicationBuilder`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/30a4b632065206d447183d2baabf6dfb3678d4af/src/CommunityToolkit.Aspire.Hosting.Dapr/IDistributedApplicationBuilderExtensions.cs#L28-L35)

Adds Dapr support to Aspire, including the ability to add Dapr sidecar to application resource.

```csharp
public static class IDistributedApplicationBuilderExtensions
{
    public static IDistributedApplicationBuilder AddDapr(
        this IDistributedApplicationBuilder builder,
        Action<DaprOptions>? configure = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
  The distributed application builder instance.
- `configure` (`Action<DaprOptions>`) `optional`
  Callback to configure dapr options.

## Returns

`IDistributedApplicationBuilder` -- The distributed application builder instance.

## AddDaprComponent(IDistributedApplicationBuilder, string, string, DaprComponentOptions?)

- Name: `AddDaprComponent(IDistributedApplicationBuilder, string, string, DaprComponentOptions?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<IDaprComponentResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/30a4b632065206d447183d2baabf6dfb3678d4af/src/CommunityToolkit.Aspire.Hosting.Dapr/IDistributedApplicationBuilderExtensions.cs#L48-L63)

Adds a Dapr component to the application model.

```csharp
public static class IDistributedApplicationBuilderExtensions
{
    public static IResourceBuilder<IDaprComponentResource> AddDaprComponent(
        this IDistributedApplicationBuilder builder,
        string name,
        string type,
        DaprComponentOptions? options = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
  The distributed application builder instance.
- `name` (`string`)
  The name of the component.
- `type` (`string`)
  The type of the component. This can be a generic "state" or "pubsub" string, to have Aspire choose an appropriate type when running or deploying.
- `options` ([DaprComponentOptions?](/reference/api/csharp/communitytoolkit.aspire.hosting.dapr/daprcomponentoptions.md)) `optional`
  Options for configuring the component, if any.

## Returns

`IResourceBuilder<IDaprComponentResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1`.

## AddDaprPubSub(IDistributedApplicationBuilder, string, DaprComponentOptions?)

- Name: `AddDaprPubSub(IDistributedApplicationBuilder, string, DaprComponentOptions?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<IDaprComponentResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/30a4b632065206d447183d2baabf6dfb3678d4af/src/CommunityToolkit.Aspire.Hosting.Dapr/IDistributedApplicationBuilderExtensions.cs#L113)

Adds a "generic" Dapr pub-sub component to the application model. Aspire will configure an appropriate type when running or deploying.

```csharp
public static class IDistributedApplicationBuilderExtensions
{
    public static IResourceBuilder<IDaprComponentResource> AddDaprPubSub(
        this IDistributedApplicationBuilder builder,
        string name,
        DaprComponentOptions? options = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
  The distributed application builder instance.
- `name` (`string`)
  The name of the component.
- `options` ([DaprComponentOptions?](/reference/api/csharp/communitytoolkit.aspire.hosting.dapr/daprcomponentoptions.md)) `optional`
  Options for configuring the component, if any.

## Returns

`IResourceBuilder<IDaprComponentResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1`.

## AddDaprStateStore(IDistributedApplicationBuilder, string, DaprComponentOptions?)

- Name: `AddDaprStateStore(IDistributedApplicationBuilder, string, DaprComponentOptions?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<IDaprComponentResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/30a4b632065206d447183d2baabf6dfb3678d4af/src/CommunityToolkit.Aspire.Hosting.Dapr/IDistributedApplicationBuilderExtensions.cs#L125)

Adds a Dapr state store component to the application model. Aspire will configure an appropriate type when running or deploying.

```csharp
public static class IDistributedApplicationBuilderExtensions
{
    public static IResourceBuilder<IDaprComponentResource> AddDaprStateStore(
        this IDistributedApplicationBuilder builder,
        string name,
        DaprComponentOptions? options = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
  The distributed application builder instance.
- `name` (`string`)
  The name of the component.
- `options` ([DaprComponentOptions?](/reference/api/csharp/communitytoolkit.aspire.hosting.dapr/daprcomponentoptions.md)) `optional`
  Options for configuring the component, if any.

## Returns

`IResourceBuilder<IDaprComponentResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1`.
