# IConverter&lt;TValue, TSurrogate&gt;

Package: [Microsoft.Orleans.Serialization.Abstractions](/orleans/docs/api/csharp/microsoft.orleans.serialization.abstractions/) 10.0.0

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.Serialization.Abstractions)

```csharp
public interface IConverter<TValue, TSurrogate>
    where TSurrogate : struct
```

Functionality for converting between two types.

## Methods

- [ConvertFromSurrogate(TSurrogate)](/orleans/docs/api/csharp/microsoft.orleans.serialization.abstractions/orleans.iconverter-2/methods/convertfromsurrogate-in-tsurrogate-2436632c/)
- [ConvertToSurrogate(TValue)](/orleans/docs/api/csharp/microsoft.orleans.serialization.abstractions/orleans.iconverter-2/methods/converttosurrogate-in-tvalue-77e350e0/)
