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

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

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