Skip to content

Shuttle/Shuttle.Extensions.Options

Repository files navigation

Shuttle.Extensions.Options

::: code-group

dotnet add package Shuttle.Extensions.Options
PM> Install-Package Shuttle.Extensions.Options
<PackageReference Include="Shuttle.Extensions.Options" Version="<version>" />
paket add Shuttle.Extensions.Options
#r "nuget: Shuttle.Extensions.Options, <version>"
#:package Shuttle.Extensions.Options@<version>

:::

This package provides extensions for configuring and validating AsyncEvent options in .NET applications.

Usage

public class OperationEventArgs(string name)
{
    public string Name { get; } = name;
}

public class ApplicationOptions
{
    public AsyncEvent<OperationEventArgs> Operation { get; set; } = new();

    // other options...
}

public class Program
{
    public static async Task Main(string[] args)
    {
        var serviceProvider = new ServiceCollection()
            .Configure<ApplicationOptions>(options =>
                {
                    options.Operation += async args => 
                    {
                        Console.WriteLine(args.Name);

                        await Task.CompletedTask;
                    };
                })
            .AddSingleton<IApplicationService, ApplicationService>()
            .BuildServiceProvider();

        _applicationService = serviceProvider.GetRequiredService<IApplicationService>();

        await _applicationService.WorkAsync();
    }
}

About

Options extensions.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published