1

我在我的应用程序中使用这些库:

using SignalRDemo.Hubs;
using Microsoft.AspNet.SignalR.Hubs;
using System.Threading.Tasks;
using System.Web.Script.Serialization;

现在我必须实现IConnect, IDisconnect接口。因此,我using SignalR.Hubs; 在 ChatHub 类中添加并添加了一个函数:

   public class ChatHub : Hub, IConnected, IDisconnect
     {
     public Task Connect()
            {
                //Call the joined method on all connected clients
                return Clients.joined(Context.ConnectionId);

            }
     }

客户端代码:

chatHub.joined = function (connectionId) {
                $('#connections').append('<li>Connect: ' + connectionId + '</li>');
            }

但是,当我构建解决方案时,它会显示错误。

   'Hub' is an ambiguous reference between 'Microsoft.AspNet.SignalR.Hub' and 'SignalR.Hubs.Hub' 
4

2 回答 2

1

您的项目中可能有两个不同的 SignalR 程序集。最新版本使用Microsoft.AspNet.SignalR命名空间。检查您的程序集并删除以前的版本。

否则你需要告诉编译器你想使用哪个命名空间。

public class ChatHub : Microsoft.AspNet.SignalR.Hub

编辑:

Halter74指出,IConnectedIDisconnect接口已被删除。OnConnected,虚拟方法可以在 Hub 类中找到OnDisconnectedOnReconnected

于 2013-05-14T08:22:31.160 回答
0

这意味着它所说的。Hub 类在Microsoft.AspNet.SignalRSignalR.Hubs.Hub命名空间中定义,而你们using都在代码中,所以编译器不知道使用哪一个;您必须明确定义正确的类:

public class ChatHub : SignalR.Hubs.Hub, IConnected, IDisconnect

或者

using Hub = SignalR.Hubs.Hub;
于 2013-05-14T08:22:59.227 回答