Pregunta

I'm creating a Hub class for my SignalR server and wanted to use a generic method which will save me from tons of lines of code. But SignalR is giving me errors when I try to Invoke the server code below from a Xamarin.iOS client which also in C#.

Server Code

public List<T> SendDataToClient<T>() where T : BusinessEntityBase
{
   return SomeDBManager.GetItems<T>();
}

Client Code

var list = await hubProxy.Invoke<List<Article>>("SendDataToClient");

Am I doing something wrong here or is it just impossible to use generic methods in SignalR Hubs?

¿Fue útil?

Solución

You cannot invoke generic methods from SignalR clients. You'll notice that if you run signalr ghp /path:myassembly.dll against the dll containing the hub with the generic SendDataToClient method, you'll get the following error:

System.ArgumentException: Method System.Collections.Generic.List`1[T] SendDataToClient[T]() is a generic method definition

It's easier to see this error when using the signalr ghp command to generate a JavaScript hub proxy file, but this is the same error that is occurring on the server when you try to invoke SendDataToClient.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top