# CustomResourceExtensions Methods

- Package: [Aspire.Hosting](/reference/api/csharp/aspire.hosting.md)
- Type: [CustomResourceExtensions](/reference/api/csharp/aspire.hosting/customresourceextensions.md)
- Kind: `Methods`
- Members: `1`

Extension methods for applying dashboard annotations to resources.

## WithInitialState(IResourceBuilder<TResource>, CustomResourceSnapshot)

- Name: `WithInitialState(IResourceBuilder<TResource>, CustomResourceSnapshot)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<TResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/bd20f904cde09ecb9c9ae5116a6f13614bf2d7c2/src/Aspire.Hosting/CustomResourceExtensions.cs#L25-L28)

Initializes the resource with the initial snapshot.

```csharp
public static class CustomResourceExtensions
{
    public static IResourceBuilder<TResource> WithInitialState<TResource>(
        this IResourceBuilder<TResource> builder,
        CustomResourceSnapshot initialSnapshot)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<TResource>`)
  The resource builder.
- `initialSnapshot` ([CustomResourceSnapshot](/reference/api/csharp/aspire.hosting/customresourcesnapshot.md))
  The factory to create the initial [CustomResourceSnapshot](/reference/api/csharp/aspire.hosting/customresourcesnapshot.md) for this resource.

## Returns

`IResourceBuilder<TResource>` -- The resource builder.

## Remarks

This method is not available in polyglot app hosts.

## ATS metadata

### Ignored by ATS

- Reason: CustomResourceSnapshot contains ResourcePropertySnapshot.Value (object?) and ResourceCommandSnapshot.Parameter (object?) -- untyped properties not representable in statically-typed polyglot SDKs.
