# IStorageHasherPicker Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.persistence.adonet/orleans.storage.istoragehasherpicker/)

## PickHasher(string, string, string, GrainId, IGrainState&lt;T&gt;, string) {#pickhasher-1-string-string-string-orleans-runtime-grainid-orleans-igrainstate-t-f7aaae58}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.persistence.adonet/orleans.storage.istoragehasherpicker/methods/pickhasher-1-string-string-string-orleans-runtime-grainid-orleans-igrainstate-t-f7aaae58/)

```csharp
public abstract IHasher PickHasher<T>(string serviceId, string storageProviderInstanceName, string grainType, GrainId grainId, IGrainState<T> grainState, string tag = null)
```

Picks a hasher using the given parameters.

### Parameters

- `serviceId` (`string`): The ID of the current service.
- `storageProviderInstanceName` (`string`): The requesting storage provider.
- `grainType` (`string`): The type of grain.
- `grainId` (`GrainId`): The grain ID.
- `grainState` (`IGrainState<T>`): The grain state.
- `tag` (`string`): An optional tag parameter that might be used by the storage parameter for "out-of-band" contracts.

### Returns

A serializer or null if not match was found.
