Open Tarmil opened 4 months ago
Allow using typedefof to override options for all instances of a generic type. Example:
typedefof
let options = FSharpJsonOptions() .WithOverrides(fun o -> dict [ typedefof<Result<_, _>>, o.WithUnionTagName("Result") ]) .ToJsonSerializerOptions() JsonSerializer.Serialize((Ok "test": Result<string, string>), o) // --> {"Result":"Ok","Fields":["test"]}
Q: What should happen if a type is matched by both a generic and a specific override? A: Only the specific one is taken into account.
Example:
let options = FSharpJsonOptions() .WithOverrides(fun o -> dict [ typedefof<Result<_, _>>, o.WithUnionTagName("GenericCase") typedof<Result<string, string>>, o.WithUnionTagName("SpecificFields") ]) .ToJsonSerializerOptions() JsonSerializer.Serialize((Ok "test": Result<string, string>), o) // --> {"Case":"Ok","SpecificFields":["test"]}
Allow using
typedefof
to override options for all instances of a generic type. Example:Q: What should happen if a type is matched by both a generic and a specific override? A: Only the specific one is taken into account.
Example: