# GrainService Methods

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

## Init(IServiceProvider) {#init-system-iserviceprovider-54d1b376}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.runtime.grainservice/methods/init-system-iserviceprovider-54d1b376/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Runtime/Services/GrainService.cs#L74)

```csharp
public virtual Task Init(IServiceProvider serviceProvider)
```

Invoked upon initialization of the service

### Parameters

- `serviceProvider` (`IServiceProvider`): The service provider.

### Returns

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

## OnRangeChange(IRingRange, IRingRange, bool) {#onrangechange-orleans-runtime-iringrange-orleans-runtime-iringrange-bool-ee2a4fda}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.runtime.grainservice/methods/onrangechange-orleans-runtime-iringrange-orleans-runtime-iringrange-bool-ee2a4fda/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Runtime/Services/GrainService.cs#L138-L142)

```csharp
public virtual Task OnRangeChange(IRingRange oldRange, IRingRange newRange, bool increased)
```

Invoked when the ring range owned by the service instance changes because of a change in the cluster state

### Parameters

- `oldRange` (`IRingRange`): The old range.
- `newRange` (`IRingRange`): The new range.
- `increased` (`bool`): A value indicating whether the range has increased.

### Returns

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

## Start {#start-82718467}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.runtime.grainservice/methods/start-82718467/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Runtime/Services/GrainService.cs#L93-L97)

```csharp
public virtual Task Start()
```

Invoked when service is being started

### Returns

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

## Stop {#stop-292b7553}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.runtime.grainservice/methods/stop-292b7553/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Runtime/Services/GrainService.cs#L115-L120)

```csharp
public virtual Task Stop()
```

Invoked when service is being stopped

### Returns

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