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

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

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

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

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

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

### Parameters

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