# FSharpChoiceCodec&lt;T1, T2, T3, T4&gt; Constructors

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.serialization.fsharp/orleans.serialization.fsharpchoicecodec-4/)

## FSharpChoiceCodec&lt;T1, T2, T3, T4&gt;(IFieldCodec&lt;T1&gt;, IFieldCodec&lt;T2&gt;, IFieldCodec&lt;T3&gt;, IFieldCodec&lt;T4&gt;) {#constructor-orleans-serialization-codecs-ifieldcodec-t1-orleans-serialization-co-db717d93}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.serialization.fsharp/orleans.serialization.fsharpchoicecodec-4/constructors/constructor-orleans-serialization-codecs-ifieldcodec-t1-orleans-serialization-co-db717d93/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Serialization.FSharp/FSharpCodecs.cs#L467-L487)

```csharp
public FSharpChoiceCodec<T1, T2, T3, FSharpChoiceCodec(IFieldCodec<T1> item1Codec, IFieldCodec<T2> item2Codec, IFieldCodec<T3> item3Codec, IFieldCodec<T4> item4Codec)
```

### Parameters

- `item1Codec` (`IFieldCodec<T1>`)
- `item2Codec` (`IFieldCodec<T2>`)
- `item3Codec` (`IFieldCodec<T3>`)
- `item4Codec` (`IFieldCodec<T4>`)
