Domanda

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?

È stato utile?

Soluzione

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top