Table of Contents

ActionExtensions Class

Definition

Namespace
Cuemon.Extensions
Assemblies
Cuemon.Extensions.Core.dll
Source
src/Cuemon.Extensions.Core/ActionExtensions.cs

Extension methods for the Action delegates.

public static class ActionExtensions
Inheritance
object
ActionExtensions

Examples

The following example demonstrates applying the options pattern and factory initialization using the Configure and CreateInstance extension methods.

using System;
using Cuemon.Configuration;
using Cuemon.Extensions;

namespace MyApp.Examples;

public static class ActionExtensionsExample
{
    private sealed class MyOptions : IParameterObject
    {
        public string Delimiter { get; set; } = ",";

        public string Qualifier { get; set; } = "\"";
    }

    private sealed class MyService
    {
        public string ConnectionString { get; set; } = string.Empty;

        public int Timeout { get; set; } = 30;
    }

    public static void Demonstrate()
    {
        var options = new Action<MyOptions>(setup =>
        {
            setup.Delimiter = ";";
            setup.Qualifier = "'";
        }).Configure();

        var service = new Action<MyService>(factory =>
        {
            factory.ConnectionString = "Server=(localdb)\\MSSQLLocalDB;Database=Docs";
            factory.Timeout = 60;
        }).CreateInstance();

        Console.WriteLine($"{options.Delimiter} {options.Qualifier}");
        Console.WriteLine($"{service.ConnectionString} ({service.Timeout}s)");
    }
}

Methods

Name Description
Configure<TOptions>(Action<TOptions>)

Provides a generic way to support the options pattern which enables using custom options classes to represent a group of related settings.

CreateInstance<T>(Action<T>)

Provides a generic way to initialize the default, parameterless constructed instance of T.