Table of Contents

Class MailtrapClientFactory

Namespace
Mailtrap
Assembly
Mailtrap.dll

Default IMailtrapClientFactory implementation.

public sealed class MailtrapClientFactory : IMailtrapClientFactory, IDisposable
Inheritance
MailtrapClientFactory
Implements

Remarks

IMailtrapClient instances, produced by the factory, can be used in any manner, since they are designed to use unit-of-work pattern under the hood, ensuring proper disposal of resources, as soon as any operation is completed.

Constructors

MailtrapClientFactory(MailtrapClientOptions, Action<IHttpClientBuilder>?)

Constructor to create a new instance of MailtrapClientFactory with provided configuration and optional HttpClient configuration delegate.

public MailtrapClientFactory(MailtrapClientOptions configuration, Action<IHttpClientBuilder>? configure = null)

Parameters

configuration MailtrapClientOptions

Options instance to configure factory.

configure Action<IHttpClientBuilder>

Optional delegate to configure underlying HttpClient.

Exceptions

ArgumentNullException

When configuration is null.

MailtrapClientFactory(MailtrapClientOptions, HttpClient)

Constructor to create a new instance of MailtrapClientFactory using provided configuration and preconfigured external HttpClient instance.

public MailtrapClientFactory(MailtrapClientOptions configuration, HttpClient httpClient)

Parameters

configuration MailtrapClientOptions

Options instance to configure factory.

httpClient HttpClient

External instance to use within factory.

Remarks

Factory won't dispose captured httpClient instance upon disposal, so it is responsibility of the caller to manage its lifecycle properly.

Exceptions

ArgumentNullException

When configuration or httpClient is null.

MailtrapClientFactory(string, Action<IHttpClientBuilder>?)

Shortcut constructor to create a new instance of MailtrapClientFactory using provided apiToken and optional HttpClient configuration delegate.

All other configuration settings will be set to default values.

public MailtrapClientFactory(string apiToken, Action<IHttpClientBuilder>? configure = null)

Parameters

apiToken string

API authentication token.

configure Action<IHttpClientBuilder>

Optional delegate to configure underlying HttpClient.

Exceptions

ArgumentNullException

When apiToken is null or Empty.

MailtrapClientFactory(string, HttpClient)

Shortcut constructor to create a new instance of MailtrapClientFactory using provided apiToken and preconfigured external HttpClient instance.

All other configuration settings will be set to default values.

public MailtrapClientFactory(string apiToken, HttpClient httpClient)

Parameters

apiToken string

API authentication token.

httpClient HttpClient

External HttpClient instance to use within factory.

Remarks

Factory won't dispose captured httpClient instance upon disposal, so it is responsibility of the caller to manage its lifecycle properly.

Exceptions

ArgumentNullException

When apiToken is null or Empty.
When httpClient is null.

Methods

CreateClient()

Creates new instance of IMailtrapClient.

public IMailtrapClient CreateClient()

Returns

IMailtrapClient

New IMailtrapClient instance.

Remarks

Each call to this method is guaranteed to return a new instance of IMailtrapClient.

Exceptions

ObjectDisposedException

When factory was disposed.

Dispose()

Disposes internal IServiceProvider instance, that is used to spawn IMailtrapClient implementation instances.

public void Dispose()