Class SavvyioOptionsExtensions
Extension methods for the SavvyioOptions class.
public static class SavvyioOptionsExtensions
- Inheritance
-
SavvyioOptionsExtensions
Examples
This example shows how to configure SavvyioOptions for a query-driven application service. The options register both the query handler implementation and the default query dispatcher so request-reply operations can resolve through the same configuration object.
using Savvyio;
using Savvyio.Handlers;
using Savvyio.Queries;
namespace ExampleApp;
public sealed class QueryOptionsExtensionsExample
{
public int Configure()
{
var options = new SavvyioOptions().AddQueryHandler<GetOrderTotalHandler>().AddQueryDispatcher();
return options.HandlerImplementationTypes.Count + options.DispatcherImplementationTypes.Count;
}
}
public sealed class GetOrderTotalHandler : IQueryHandler
{
public IRequestReplyActivator<IQuery> Delegates => HandlerFactory.CreateRequestReply<IQuery>(registry => registry.Register<GetOrderTotalQuery, decimal>(_ => 42m));
}
public sealed record GetOrderTotalQuery(string OrderId) : Request, IQuery<decimal>;
Methods
AddQueryDispatcher(SavvyioOptions)
Adds a default implementation of the IQueryDispatcher interface.
public static SavvyioOptions AddQueryDispatcher(this SavvyioOptions options)
Parameters
optionsSavvyioOptionsThe SavvyioOptions to extend.
Returns
- SavvyioOptions
A reference to
optionsso that additional configuration calls can be chained.
AddQueryHandler<TImplementation>(SavvyioOptions)
Adds an implementation of the IQueryHandler interface to HandlerImplementationTypes (if not already registered).
public static SavvyioOptions AddQueryHandler<TImplementation>(this SavvyioOptions options) where TImplementation : class, IQueryHandler
Parameters
optionsSavvyioOptionsThe SavvyioOptions to extend.
Returns
- SavvyioOptions
A reference to
optionsso that additional configuration calls can be chained.
Type Parameters
TImplementationThe type that implements the IQueryHandler interface.