# IResourceBuilder<T> Methods

- Package: [Aspire.Hosting](/reference/api/csharp/aspire.hosting.md)
- Type: [IResourceBuilder<T>](/reference/api/csharp/aspire.hosting/iresourcebuilder-1.md)
- Kind: `Methods`
- Members: `2`

Defines a builder for creating resources of type `T`.

## WithAnnotation(ResourceAnnotationMutationBehavior)

- Name: `WithAnnotation(ResourceAnnotationMutationBehavior)`
- Modifiers: `virtual`
- Returns: [IResourceBuilder<T>](/reference/api/csharp/aspire.hosting/iresourcebuilder-1.md)
- Source: [GitHub](https://github.com/microsoft/aspire/blob/bd20f904cde09ecb9c9ae5116a6f13614bf2d7c2/src/Aspire.Hosting/ApplicationModel/IResourceBuilder.cs#L29)

Adds an annotation to the resource being built.

```csharp
public interface IResourceBuilder<T>
{
    public virtual IResourceBuilder<T> WithAnnotation<TAnnotation>(
        ResourceAnnotationMutationBehavior behavior = ResourceAnnotationMutationBehavior.Append)
    {
        // ...
    }
}
```

## Parameters

- `behavior` ([ResourceAnnotationMutationBehavior](/reference/api/csharp/aspire.hosting/resourceannotationmutationbehavior.md)) `optional`
  The behavior to use when adding the annotation.

## Returns

[IResourceBuilder<T>](/reference/api/csharp/aspire.hosting/iresourcebuilder-1.md) -- The resource builder instance.

## WithAnnotation(TAnnotation, ResourceAnnotationMutationBehavior)

- Name: `WithAnnotation(TAnnotation, ResourceAnnotationMutationBehavior)`
- Modifiers: `abstract`
- Returns: [IResourceBuilder<T>](/reference/api/csharp/aspire.hosting/iresourcebuilder-1.md)
- Source: [GitHub](https://github.com/microsoft/aspire/blob/bd20f904cde09ecb9c9ae5116a6f13614bf2d7c2/src/Aspire.Hosting/ApplicationModel/IResourceBuilder.cs#L29)

Adds an annotation to the resource being built.

```csharp
public interface IResourceBuilder<T>
{
    public abstract IResourceBuilder<T> WithAnnotation<TAnnotation>(
        TAnnotation annotation,
        ResourceAnnotationMutationBehavior behavior = ResourceAnnotationMutationBehavior.Append)
    {
        // ...
    }
}
```

## Parameters

- `annotation` (`TAnnotation`)
  The annotation to add.
- `behavior` ([ResourceAnnotationMutationBehavior](/reference/api/csharp/aspire.hosting/resourceannotationmutationbehavior.md)) `optional`
  The behavior to use when adding the annotation.

## Returns

[IResourceBuilder<T>](/reference/api/csharp/aspire.hosting/iresourcebuilder-1.md) -- The resource builder instance.
