Table of Contents

ServiceCollectionExtensions Class

Definition

Namespace
Bodu.Financial
Assembly
Bodu.Financial.DependencyInjection.dll
Package
Bodu.Financial.DependencyInjection 1.0.0
Source
ServiceCollectionExtensions.cs

Provides the AddFinancialService entry points that register the Bodu.Financial services into an IServiceCollection and return a fluent IFinancialServiceBuilder.

public static class ServiceCollectionExtensions
Inheritance
ServiceCollectionExtensions
Inherited Members

Fields

DefaultConfigurationSection

The default IConfiguration section name bound into FinancialOptions.

public const string DefaultConfigurationSection = "Financial"

Field Value

string

Methods

AddFinancialService(IServiceCollection, IConfiguration?, string)

Registers the core financial services - an ICurrencyLookup singleton and the bound FinancialOptions - and returns a builder for further composition.

public static IFinancialServiceBuilder AddFinancialService(this IServiceCollection services, IConfiguration? configuration = null, string sectionName = "Financial")

Parameters

services IServiceCollection

The service collection to register into.

configuration IConfiguration

Optional configuration root or section. When supplied, the section named sectionName is bound into FinancialOptions.

sectionName string

The configuration section name. Defaults to DefaultConfigurationSection.

Returns

IFinancialServiceBuilder

An IFinancialServiceBuilder for further registration.

Remarks

No foreign-exchange provider is registered by default; supply one via AddExchangeRateProvider<TProvider>(IFinancialServiceBuilder) or its dated counterpart. JSON serialization is not registered here either - the financial JsonSerializerOptions registration (AddFinancialJson) ships in the companion Bodu.Financial.Serialization.Json package.

Exceptions

ArgumentNullException

services is null.

ArgumentException

sectionName is empty or white space.

AddFinancialService(IServiceCollection, Action<IFinancialServiceBuilder>)

Registers the core financial services and invokes configure for programmatic composition.

public static IFinancialServiceBuilder AddFinancialService(this IServiceCollection services, Action<IFinancialServiceBuilder> configure)

Parameters

services IServiceCollection

The service collection to register into.

configure Action<IFinancialServiceBuilder>

A callback invoked with the IFinancialServiceBuilder.

Returns

IFinancialServiceBuilder

The same builder the callback received.

Remarks

IServiceCollection services = new ServiceCollection();

services.AddFinancialService(builder => builder
    .AddCurrencyLookup<MyCurrencyLookup>()
    .AddMonetaryContext("invoicing", new MonetaryContext(CurrencyCode.USD))
    .AddDatedExchangeRateProvider<MyRateProvider>());

// Promote the configured lookup to the ambient default after the provider is built.
services.BuildServiceProvider().UseCurrencyResolution();

Exceptions

ArgumentNullException

services or configure is null.

Applies to

ProductVersions
.NET8, 10