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

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

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.Serialization.FSharp) | [Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Serialization.FSharp/FSharpCodecs.cs#L588)

```csharp
public class FSharpChoiceCodec<T1, T2, T3, T4, T5> : IDerivedTypeCodec, IFieldCodec, IFieldCodec<FSharpChoice<T1, T2, T3, T4, T5>>
```

Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.

## Constructors

- [FSharpChoiceCodec&lt;T1, T2, T3, T4, T5&gt;(IFieldCodec&lt;T1&gt;, IFieldCodec&lt;T2&gt;, IFieldCodec&lt;T3&gt;, IFieldCodec&lt;T4&gt;, IFieldCodec&lt;T5&gt;)](/orleans/docs/api/csharp/microsoft.orleans.serialization.fsharp/orleans.serialization.fsharpchoicecodec-5/constructors/constructor-orleans-serialization-codecs-ifieldcodec-t1-orleans-serialization-co-ccd10c2c/)
