# FSharpChoiceCodec&lt;T1, T2, T3, T4&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#L465)

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

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&gt;(IFieldCodec&lt;T1&gt;, IFieldCodec&lt;T2&gt;, IFieldCodec&lt;T3&gt;, IFieldCodec&lt;T4&gt;)](/orleans/docs/api/csharp/microsoft.orleans.serialization.fsharp/orleans.serialization.fsharpchoicecodec-4/constructors/constructor-orleans-serialization-codecs-ifieldcodec-t1-orleans-serialization-co-db717d93/)
