# SurrogateCodec&lt;TField, TSurrogate, TConverter&gt; Constructors

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.serializers.surrogatecodec-3/)

## SurrogateCodec&lt;TField, TSurrogate, TConverter&gt;(IValueSerializer&lt;TSurrogate&gt;, IDeepCopier&lt;TSurrogate&gt;, TConverter) {#constructor-orleans-serialization-serializers-ivalueserializer-tsurrogate-orlean-008cfcd2}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.serializers.surrogatecodec-3/constructors/constructor-orleans-serialization-serializers-ivalueserializer-tsurrogate-orlean-008cfcd2/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Serialization/Serializers/SurrogateCodec.cs#L24-L45)

```csharp
public SurrogateCodec<TField, TSurrogate, SurrogateCodec(IValueSerializer<TSurrogate> surrogateSerializer, IDeepCopier<TSurrogate> surrogateCopier, TConverter converter)
```

Initializes a new instance of the `Orleans.Serialization.Serializers.SurrogateCodec-3` class.

### Parameters

- `surrogateSerializer` (`IValueSerializer<TSurrogate>`): The surrogate serializer.
- `surrogateCopier` (`IDeepCopier<TSurrogate>`): The surrogate copier.
- `converter` (`TConverter`): The surrogate converter.
