2013-05-14 63 views
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' 

回答

1

您的項目中可能有兩個不同的SignalR組件。最新版本使用Microsoft.AspNet.SignalR命名空間。檢查你的程序集並刪除以前的版本。

否則,您需要告訴編譯器您要使用哪個命名空間。

public class ChatHub : Microsoft.AspNet.SignalR.Hub 

編輯:

halter74指出IConnectedIDisconnect接口已被刪除。 OnConnected,OnDisconnectedOnReconnected可以在Hub類上找到虛擬方法。

+0

謝謝!我糾正了圖書館。它現在有效。 – 2013-05-14 10:21:25

+0

使用最新版本的SignalR(Microsoft.AspNet.SignalR.Hub),IConnected和IDisconnect接口已被刪除。但是,OnConnected,OnDisconnected和OnReconnected是Hub類上的虛擬方法。 – halter73 2013-05-14 19:24:35

+0

@ halter73感謝信息,更新了我的答案。 – 2013-05-14 19:31:13

0

這意味着它說什麼。在您的代碼中,Microsoft.AspNet.SignalRSignalR.Hubs.Hub命名空間和您的using中定義的集線器類別,因此編譯器不知道使用哪一個;你必須明確定義正確類:

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

using Hub = SignalR.Hubs.Hub; 
+0

現在有效。謝謝。 – 2013-05-14 10:21:46