# UvicornAppHostingExtension Methods

- Package: [CommunityToolkit.Aspire.Hosting.Python.Extensions](/reference/api/csharp/communitytoolkit.aspire.hosting.python.extensions.md)
- Type: [UvicornAppHostingExtension](/reference/api/csharp/communitytoolkit.aspire.hosting.python.extensions/uvicornapphostingextension.md)
- Kind: `Methods`
- Members: `1`

Provides extension methods for adding Uvicorn applications to an `Hosting.IDistributedApplicationBuilder`.

## AddUvicornApp(IDistributedApplicationBuilder, string, string, string, string[])

> **Obsolete:** AddUvicornApp is now part of Aspire.Hosting.Python. Use the Aspire.Hosting.Python.PythonAppResourceBuilderExtensions.AddUvicornApp method instead. This method will be removed in a future release.

- Name: `AddUvicornApp(IDistributedApplicationBuilder, string, string, string, string[])`
- Modifiers: `extension`
- Returns: `IResourceBuilder<UvicornAppResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.Python.Extensions/UvicornAppHostingExtension.cs#L32-L34)

Adds a Uvicorn application to the distributed application builder.

```csharp
public static class UvicornAppHostingExtension
{
    public static IResourceBuilder<UvicornAppResource> AddUvicornApp(
        this IDistributedApplicationBuilder builder,
        string name,
        string projectDirectory,
        string appName,
        params string[] args)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
  The distributed application builder.
- `name` (`string`)
  The name of the Uvicorn application.
- `projectDirectory` (`string`)
  The directory of the project containing the Uvicorn application.
- `appName` (`string`)
  The name of the uvicorn app.
- `args` (`string[]`)
  Optional arguments to pass to the script.

## Returns

`IResourceBuilder<UvicornAppResource>` -- An `ApplicationModel.IResourceBuilder`1` for the Uvicorn application resource.

## Exceptions

- `ArgumentNullException` -- Thrown if `builder` is null.
