# GrainService

Package: [Microsoft.Orleans.Runtime](/orleans/docs/api/csharp/microsoft.orleans.runtime/) 10.0.0

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.Runtime) | [Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Runtime/Services/GrainService.cs#L14)

```csharp
public abstract class GrainService : SystemTarget, ISystemTarget, IRingRangeListener, IAddressable, IGrainService
```

Base class for implementing a grain-like partitioned service with per silo instances of it automatically instantiated and started by silo runtime

## Methods

- [Init(IServiceProvider)](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.runtime.grainservice/methods/init-system-iserviceprovider-54d1b376/)
- [OnRangeChange(IRingRange, IRingRange, bool)](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.runtime.grainservice/methods/onrangechange-orleans-runtime-iringrange-orleans-runtime-iringrange-bool-ee2a4fda/)
- [Start](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.runtime.grainservice/methods/start-82718467/)
- [Stop](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.runtime.grainservice/methods/stop-292b7553/)
