Service
IService<double, double> type-casts to IProvider<double, double> with extension method Cast<Key,Value>().
IHandler<double, double> squareHandler =
Handlers.Action<double, double>(q => { q.Response.SetValue(q.Request * q.Request); });
IService service = Services.Create(squareHandler);
IService<double, double> serviceT = service.Cast<double, double>();
IProvider<double, double> provider = (IProvider<double, double>)serviceT;
WriteLine(provider[10]); // -> "100"
Full Example
Full example
using Avalanche.Service;
using Avalanche.Utilities.Provider;
using static System.Console;
class provider_service
{
public static void Run()
{
{
// <01>
IHandler<double, double> squareHandler =
Handlers.Action<double, double>(q => { q.Response.SetValue(q.Request * q.Request); });
IService service = Services.Create(squareHandler);
IService<double, double> serviceT = service.Cast<double, double>();
IProvider<double, double> provider = (IProvider<double, double>)serviceT;
WriteLine(provider[10]); // -> "100"
// </01>
}
{
// <02>
// </02>
}
}
}