/// <summary>Gets response type for the message.</summary> /// <typeparam name="TFallbackType">Type of response to use as fallback.</typeparam> /// <param name="resolver">Resolver to get type from.</param> /// <param name="message">Sent message.</param> /// <returns>Type of the response.</returns> public static Type GetMessageResponseType <TFallbackType>(this IResponseTypeResolver resolver, IWolfMessage message) where TFallbackType : IWolfResponse => resolver.GetMessageResponseType(message.GetType(), typeof(TFallbackType));
/// <summary>Creates a new hosted client.</summary> /// <param name="options">Client configuration.</param> /// <param name="logger">Logger to log all log events.</param> /// <param name="underlyingClientLogger">Logger that will be used by the underlying client.</param> /// <param name="tokenProvider">Wolf token generator.</param> /// <param name="messageSerializers">Map of message serializers.</param> /// <param name="responseSerializers">Map of response serializers.</param> /// <param name="responseTypeResolver">Resolver of message's response type.</param> /// <param name="hostLifetime">Host lifetime used to terminate application.</param> public HostedWolfClient(IOptionsMonitor <HostedWolfClientOptions> options, ILogger <HostedWolfClient> logger, ILogger <WolfClient> underlyingClientLogger, ITokenProvider tokenProvider, ISerializerProvider <string, IMessageSerializer> messageSerializers, ISerializerProvider <Type, IResponseSerializer> responseSerializers, IResponseTypeResolver responseTypeResolver, #if NETCOREAPP3_0 IHostApplicationLifetime hostLifetime