::: 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.
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();
}
}