# IGrainActivator Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.runtime.igrainactivator/)

## CreateInstance(IGrainContext) {#createinstance-orleans-runtime-igraincontext-133431c6}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.runtime.igrainactivator/methods/createinstance-orleans-runtime-igraincontext-133431c6/)

```csharp
public abstract object CreateInstance(IGrainContext context)
```

Returns a new grain instance for the provided grain context.

### Parameters

- `context` (`IGrainContext`): The grain context.

### Returns

The grain instance.

## DisposeInstance(IGrainContext, object) {#disposeinstance-orleans-runtime-igraincontext-object-386c5fa4}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.runtime.igrainactivator/methods/disposeinstance-orleans-runtime-igraincontext-object-386c5fa4/)

```csharp
public abstract ValueTask DisposeInstance(IGrainContext context, object instance)
```

Disposes the provided grain instance which is associated with the provided grain context.

### Parameters

- `context` (`IGrainContext`): The grain context.
- `instance` (`object`): The grain instance.

### Returns

A `System.Threading.Tasks.ValueTask` representing the work performed.
