Xamarin Android中可能的SignalR错误

时间:2014-12-27 16:51:01

标签: c# android asp.net xamarin signalr

当使用Xamarin Android应用程序作为SignalR客户端时,我遇到了这种奇怪的行为。具有:

    public GameClient()
    {
        _connection = new HubConnection("url");
        _proxy = _connection.CreateHubProxy("GameHub");

        _proxy.On("SendMove", (string playerID, string fromID, string toID, int actions, int lastUpdate) =>
        {
            if (OnMoved != null)
                OnMoved(playerID, actions, fromID, toID, lastUpdate);
        });

导致System.MissingMethodException: Method not found: 'Microsoft.AspNet.SignalR.Client.HubProxyExtensions.On'.。但是当我在方法中间只删除了一个参数时:

    _proxy.On("SendMove", (string playerID, int actions, string destinationID, int lastUpdate) =>
            {
                if (OnMoved != null)
                    OnMoved(playerID, actions, destinationID, lastUpdate);
            });

然后一切正常。有人会认为错误是由参数的数量引起的 - 也许,SignalR有一些限制。但是,我用这种方法得到了同样的错误:

        _proxy.On("SendGameJoined", (object xDoc) =>
            {
                if (OnGameJoined != null)
                    OnGameJoined(this, xDoc);
            });

只是一个参数,并再次出现相同的错误。现在,解决方案 - 或者更确切地说是解决方法 - 再次非常简单。将对象更改为字符串会立即起作用。

        _proxy.On("SendGameJoined", (string xDoc) =>
            {
                if (OnGameJoined != null)
                    OnGameJoined(this, xDoc);
            });

现在,SignalR文档说,任何类型的参数都可以有任意数量 - 甚至是自定义参数。我只使用常见的C#类型,但我有这种奇怪的行为。难道我做错了什么?或者它是SignalR或Xamarin中的错误?

0 个答案:

没有答案