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 の 2 つの異なるアセンブリが含まれている可能性があります。最新バージョンはMicrosoft.AspNet.SignalR名前空間を使用します。アセンブリを確認し、以前のバージョンを削除してください。

それ以外の場合は、使用する名前空間をコンパイラに伝える必要があります。

public class ChatHub : Microsoft.AspNet.SignalR.Hub

編集:

Halter74 さんIConnectedは、IDisconnectインターフェイスが削除されたことを指摘しました。OnConnectedOnDisconnectedおよびOnReconnected仮想メソッドは Hub クラスにあります。

于 2013-05-14T08:22:31.160 に答える
0

これはそれが言うことを意味します。Microsoft.AspNet.SignalRおよびSignalR.Hubs.Hub名前空間で定義されたハブ クラスとusingコード内の両方であるため、コンパイラはどちらを使用するかわかりません。適切なクラスを明示的に定義する必要があります。

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

また

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