RSCG – TypedSignalR.Client
| name | TypedSignalR.Client |
| nuget | https://www.nuget.org/packages/TypedSignalR.Client/ |
| link | https://github.com/nenoNaninu/TypedSignalR.Client |
| author | nenoNaninu |
Creating typed Signal R clients
This is how you can use TypedSignalR.Client .
The code that you start with is
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="6.0.1" />
<PackageReference Include="TypedSignalR.Client" Version="3.6.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\TestSignalRCommon\TestSignalRCommon.csproj" />
</ItemGroup>
<PropertyGroup>
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<CompilerGeneratedFilesOutputPath>$(BaseIntermediateOutputPath)\GX</CompilerGeneratedFilesOutputPath>
</PropertyGroup>
</Project>
The code that you will use is
// See https://aka.ms/new-console-template for more information
using Microsoft.AspNetCore.SignalR.Client;
using TestSignalRCommon;
using TestSignalRConsole;
Console.WriteLine("Hello,World!");
await Task.Delay(5_000);
HubConnection _connection = new HubConnectionBuilder()
.WithUrl("https://localhost:7302/ChatHub")
.Build();
await _connection.StartAsync();
_connection.On<string,string>("ReceiveMessage",(user,message) =>
{
Console.WriteLine($" from not typed {user}: {message}");
});
await Task.Delay(30_000);
var h = TypedSignalR.Client.HubConnectionExtensions.CreateHubProxy<IHubMessage>(_connection);
await h.SendMessage("console","message");
//TypedSignalR.Client.HubConnectionExtensions.Register<IHubMessage>(_connection,new ReceiverMessage());
Console.WriteLine("waiting for messages from Windows App");
var message = Console.ReadLine();
The code that is generated is
// <auto-generated>
// THIS (.cs) FILE IS GENERATED BY TypedSignalR.Client
// </auto-generated>
#nullable enable
#pragma warning disable CS1591
namespace TypedSignalR.Client
{
internal interface IHubConnectionObserver
{
global::System.Threading.Tasks.Task OnClosed(global::System.Exception? exception);
global::System.Threading.Tasks.Task OnReconnected(string? connectionId);
global::System.Threading.Tasks.Task OnReconnecting(global::System.Exception? exception);
}
internal interface IHubInvoker
{
}
internal interface IHubInvokerFactory
{
}
internal interface IHubInvokerFactory<out T> : IHubInvokerFactory
{
T CreateHubInvoker(global::Microsoft.AspNetCore.SignalR.Client.HubConnection connection,global::System.Threading.CancellationToken cancellationToken);
}
internal interface IReceiverBinder
{
}
internal interface IReceiverBinder<in T> : IReceiverBinder
{
global::System.IDisposable Bind(global::Microsoft.AspNetCore.SignalR.Client.HubConnection connection,T receiver);
}
}
#pragma warning restore CS1591
// <auto-generated>
// THIS (.cs) FILE IS GENERATED BY TypedSignalR.Client
// </auto-generated>
#nullable enable
#pragma warning disable CS1591
#pragma warning disable CS8767
#pragma warning disable CS8613
namespace TypedSignalR.Client
{
internal static partial class HubConnectionExtensions
{
private static partial global::System.Collections.Generic.Dictionary<global::System.Type,IReceiverBinder> CreateBinders()
{
var binders = new global::System.Collections.Generic.Dictionary<global::System.Type,IReceiverBinder>();
return binders;
}
}
}
#pragma warning restore CS8613
#pragma warning restore CS8767
#pragma warning restore CS1591
// <auto-generated>
// THIS (.cs) FILE IS GENERATED BY TypedSignalR.Client
// </auto-generated>
#nullable enable
#pragma warning disable CS1591
namespace TypedSignalR.Client
{
internal static partial class HubConnectionExtensions
{
public static THub CreateHubProxy<THub>(this global::Microsoft.AspNetCore.SignalR.Client.HubConnection connection,global::System.Threading.CancellationToken cancellationToken = default)
{
var factory = HubInvokerFactoryProvider.GetHubInvokerFactory<THub>();
if (factory is null)
{
throw new global::System.InvalidOperationException($"Failed to create a hub proxy. TypedSignalR.Client did not generate source code to create a hub proxy,which type is {typeof(THub)}.");
}
return factory.CreateHubInvoker(connection,cancellationToken);
}
public static global::System.IDisposable Register<TReceiver>(this global::Microsoft.AspNetCore.SignalR.Client.HubConnection connection,TReceiver receiver)
{
if (receiver is null)
{
throw new global::System.ArgumentNullException(nameof(receiver));
}
if (typeof(TReceiver) == typeof(IHubConnectionObserver))
{
return new HubConnectionObserverSubscription(connection,(IHubConnectionObserver)receiver);
}
var binder = ReceiverBinderProvider.GetReceiverBinder<TReceiver>();
if (binder is null)
{
throw new global::System.InvalidOperationException($"Failed to register a receiver. TypedSignalR.Client did not generate source code to register a receiver,which type is {typeof(TReceiver)}.");
}
var subscription = binder.Bind(connection,receiver);
if (receiver is IHubConnectionObserver hubConnectionObserver)
{
subscription = new CompositeDisposable(new[] { subscription,new HubConnectionObserverSubscription(connection,hubConnectionObserver) });
}
return subscription;
}
}
internal static partial class HubConnectionExtensions
{
private static partial global::System.Collections.Generic.Dictionary<global::System.Type,IHubInvokerFactory> CreateFactories();
private static partial global::System.Collections.Generic.Dictionary<global::System.Type,IReceiverBinder> CreateBinders();
private static class HubInvokerFactoryProvider
{
private static readonly global::System.Collections.Generic.Dictionary<global::System.Type,IHubInvokerFactory> Factories;
static HubInvokerFactoryProvider()
{
Factories = CreateFactories();
}
public static IHubInvokerFactory<T>? GetHubInvokerFactory<T>()
{
return Cache<T>.HubInvokerFactory;
}
private static class Cache<T>
{
public static readonly IHubInvokerFactory<T>? HubInvokerFactory = default;
static Cache()
{
if (Factories.TryGetValue(typeof(T),out var hubInvokerFactory))
{
HubInvokerFactory = hubInvokerFactory as IHubInvokerFactory<T>;
}
}
}
}
private static class ReceiverBinderProvider
{
private static readonly global::System.Collections.Generic.Dictionary<global::System.Type,IReceiverBinder> Binders;
static ReceiverBinderProvider()
{
Binders = CreateBinders();
}
public static IReceiverBinder<T>? GetReceiverBinder<T>()
{
return Cache<T>.ReceiverBinder;
}
private static class Cache<T>
{
public static readonly IReceiverBinder<T>? ReceiverBinder = default;
static Cache()
{
if (Binders.TryGetValue(typeof(T),out var receiverBinder))
{
ReceiverBinder = receiverBinder as IReceiverBinder<T>;
}
}
}
}
private sealed class HubConnectionObserverSubscription : global::System.IDisposable
{
private readonly global::Microsoft.AspNetCore.SignalR.Client.HubConnection _connection;
private readonly IHubConnectionObserver _hubConnectionObserver;
private int _disposed = 0;
public HubConnectionObserverSubscription(global::Microsoft.AspNetCore.SignalR.Client.HubConnection connection,IHubConnectionObserver hubConnectionObserver)
{
_connection = connection;
_hubConnectionObserver = hubConnectionObserver;
_connection.Closed += hubConnectionObserver.OnClosed;
_connection.Reconnected += hubConnectionObserver.OnReconnected;
_connection.Reconnecting += hubConnectionObserver.OnReconnecting;
}
public void Dispose()
{
if (global::System.Threading.Interlocked.Exchange(ref _disposed,1) == 0)
{
_connection.Closed -= _hubConnectionObserver.OnClosed;
_connection.Reconnected -= _hubConnectionObserver.OnReconnected;
_connection.Reconnecting -= _hubConnectionObserver.OnReconnecting;
}
}
}
private sealed class CompositeDisposable : global::System.IDisposable
{
private readonly object _gate = new object();
private readonly global::System.Collections.Generic.List<global::System.IDisposable> _disposables;
private bool _disposed;
public CompositeDisposable()
{
_disposables = new global::System.Collections.Generic.List<global::System.IDisposable>();
}
public CompositeDisposable(global::System.IDisposable[] disposables)
{
_disposables = new global::System.Collections.Generic.List<global::System.IDisposable>(disposables);
}
public CompositeDisposable(int capacity)
{
if (capacity < 0)
{
throw new global::System.ArgumentOutOfRangeException(nameof(capacity));
}
_disposables = new global::System.Collections.Generic.List<global::System.IDisposable>(capacity);
}
public void Add(global::System.IDisposable item)
{
bool shouldDispose = false;
lock (_gate)
{
shouldDispose = _disposed;
if (!_disposed)
{
_disposables.Add(item);
}
}
if (shouldDispose)
{
item.Dispose();
}
}
public void Dispose()
{
var currentDisposables = default(global::System.Collections.Generic.List<global::System.IDisposable>);
lock (_gate)
{
if (_disposed)
{
return;
}
_disposed = true;
currentDisposables = _disposables;
}
foreach (var item in currentDisposables)
{
if (item is not null)
{
item.Dispose();
}
}
currentDisposables.Clear();
}
}
// It is not possible to avoid boxing.
// This is a limitation caused by the SignalR implementation.
private static class HandlerConverter
{
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert(global::System.Func<global::System.Threading.Tasks.Task> handler)
{
return args => handler();
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1>(global::System.Func<T1,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2>(global::System.Func<T1,T2,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3>(global::System.Func<T1,T2,T3,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4>(global::System.Func<T1,T2,T3,T4,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5>(global::System.Func<T1,T2,T3,T4,T5,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6>(global::System.Func<T1,T2,T3,T4,T5,T6,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!,(T13)args[12]!);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!,(T13)args[12]!,(T14)args[13]!);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!,(T13)args[12]!,(T14)args[13]!,(T15)args[14]!);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!,(T13)args[12]!,(T14)args[13]!,(T15)args[14]!,(T16)args[15]!);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert(global::System.Func<global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task> handler)
{
return args => handler(default);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1>(global::System.Func<T1,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,default);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2>(global::System.Func<T1,T2,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,default);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3>(global::System.Func<T1,T2,T3,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,default);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4>(global::System.Func<T1,T2,T3,T4,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,default);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5>(global::System.Func<T1,T2,T3,T4,T5,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,default);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6>(global::System.Func<T1,T2,T3,T4,T5,T6,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,default);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,default);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,default);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,default);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,default);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,default);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!,default);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!,(T13)args[12]!,default);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!,(T13)args[12]!,(T14)args[13]!,default);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task> handler)
{
return args => handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!,(T13)args[12]!,(T14)args[13]!,(T15)args[14]!,default);
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<TResult>(global::System.Func<global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler().ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,TResult>(global::System.Func<T1,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,TResult>(global::System.Func<T1,T2,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,TResult>(global::System.Func<T1,T2,T3,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,TResult>(global::System.Func<T1,T2,T3,T4,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,TResult>(global::System.Func<T1,T2,T3,T4,T5,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!,(T13)args[12]!).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!,(T13)args[12]!,(T14)args[13]!).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!,(T13)args[12]!,(T14)args[13]!,(T15)args[14]!).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!,(T13)args[12]!,(T14)args[13]!,(T15)args[14]!,(T16)args[15]!).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<TResult>(global::System.Func<global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler(default).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,TResult>(global::System.Func<T1,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,default).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,TResult>(global::System.Func<T1,T2,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,default).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,TResult>(global::System.Func<T1,T2,T3,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,default).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,TResult>(global::System.Func<T1,T2,T3,T4,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,default).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,TResult>(global::System.Func<T1,T2,T3,T4,T5,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,default).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,default).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,default).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,default).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,default).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,default).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,default).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!,default).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!,(T13)args[12]!,default).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!,(T13)args[12]!,(T14)args[13]!,default).ConfigureAwait(false);
return result;
};
}
public static global::System.Func<object?[],global::System.Threading.Tasks.Task<TResult>> Convert<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,TResult>(global::System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,global::System.Threading.CancellationToken,global::System.Threading.Tasks.Task<TResult>> handler)
{
return async args =>
{
var result = await handler((T1)args[0]!,(T2)args[1]!,(T3)args[2]!,(T4)args[3]!,(T5)args[4]!,(T6)args[5]!,(T7)args[6]!,(T8)args[7]!,(T9)args[8]!,(T10)args[9]!,(T11)args[10]!,(T12)args[11]!,(T13)args[12]!,(T14)args[13]!,(T15)args[14]!,default).ConfigureAwait(false);
return result;
};
}
}
}
}
#pragma warning restore CS1591
// <auto-generated>
// THIS (.cs) FILE IS GENERATED BY TypedSignalR.Client
// </auto-generated>
#nullable enable
#pragma warning disable CS1591
#pragma warning disable CS8767
#pragma warning disable CS8613
namespace TypedSignalR.Client
{
internal static partial class HubConnectionExtensions
{
private sealed class HubInvokerFor_global__TestSignalRCommon_IHubMessage : global::TestSignalRCommon.IHubMessage,IHubInvoker
{
private readonly global::Microsoft.AspNetCore.SignalR.Client.HubConnection _connection;
private readonly global::System.Threading.CancellationToken _cancellationToken;
public HubInvokerFor_global__TestSignalRCommon_IHubMessage(global::Microsoft.AspNetCore.SignalR.Client.HubConnection connection,global::System.Threading.CancellationToken cancellationToken)
{
_connection = connection;
_cancellationToken = cancellationToken;
}
public global::System.Threading.Tasks.Task SendMessage(string user,string message)
{
return global::Microsoft.AspNetCore.SignalR.Client.HubConnectionExtensions.InvokeCoreAsync(_connection,nameof(SendMessage),new object?[] { user,message },_cancellationToken);
}
}
private sealed class HubInvokerFactoryFor_global__TestSignalRCommon_IHubMessage : IHubInvokerFactory<global::TestSignalRCommon.IHubMessage>
{
public global::TestSignalRCommon.IHubMessage CreateHubInvoker(global::Microsoft.AspNetCore.SignalR.Client.HubConnection connection,global::System.Threading.CancellationToken cancellationToken)
{
return new HubInvokerFor_global__TestSignalRCommon_IHubMessage(connection,cancellationToken);
}
}
private static partial global::System.Collections.Generic.Dictionary<global::System.Type,IHubInvokerFactory> CreateFactories()
{
var factories = new global::System.Collections.Generic.Dictionary<global::System.Type,IHubInvokerFactory>();
factories.Add(typeof(global::TestSignalRCommon.IHubMessage),new HubInvokerFactoryFor_global__TestSignalRCommon_IHubMessage());
return factories;
}
}
}
#pragma warning restore CS8613
#pragma warning restore CS8767
#pragma warning restore CS1591
Code and pdf at
https://ignatandrei.github.io/RSCG_Examples/v2/docs/TypedSignalR.Client
Leave a Reply