FinancialJsonSerializerOptionsExtensions Class
Definition
- Assembly
- Bodu.Financial.Serialization.Json.dll
- Package
- Bodu.Financial.Serialization.Json 1.0.0
Extension methods that register the Bodu.Financial JSON converters on a JsonSerializerOptions, picking a coherent shape for every shipped monetary type from a single FinancialJsonPolicy value.
public static class FinancialJsonSerializerOptionsExtensions
- Inheritance
-
FinancialJsonSerializerOptionsExtensions
- Inherited Members
Methods
AddFinancialJsonConverters(JsonSerializerOptions, FinancialJsonPolicy)
Adds the Money<TCurrency>, Money,
CalculatedMoney, MoneyBag,
ExchangeRate, and
CurrencyPair JSON converters to options,
configured for the supplied policy.
public static JsonSerializerOptions AddFinancialJsonConverters(this JsonSerializerOptions options, FinancialJsonPolicy policy = FinancialJsonPolicy.Strict)
Parameters
optionsJsonSerializerOptionsThe serializer options to extend.
policyFinancialJsonPolicyThe serialization policy applied to every registered converter. Defaults to Strict.
Returns
- JsonSerializerOptions
The same
optionsinstance, so calls can be chained inline.
Remarks
The core Bodu.Financial types carry no [JsonConverter] attribute - the library is
serialization-agnostic - so this call is required for Money,
Money<TCurrency>, MoneyBag,
ExchangeRate, and
CurrencyPair to round-trip through their canonical shapes.
Use the Strict policy for ledger / persistence data, the
Lenient policy for import workflows, and the
Compact policy for the compact "19.99 USD" string form.
All three policies preserve monetary precision on round-trip: a Money carrying an
explicit minor-unit scale (a unit price) persists that scale - via a scale property in the object shapes
and via the printed fractional digits in the compact form - and a CalculatedMoney
serializes its full unrounded amount verbatim.
Exceptions
- ArgumentNullException
optionsis null.- ArgumentOutOfRangeException
policyis not a defined FinancialJsonPolicy value.- InvalidOperationException
optionshas already been used for serialization or deserialization, in which case Converters is read-only. Configure options before first use.
Applies to
| Product | Versions |
|---|---|
| .NET | 8, 10 |