2012-04-29 6 views
4

SignalR Hubクラスを拡張してSignalR Hubであるベースクラスを作成しようとしています。ベースHubクラスを作成するためにSignalR Server Hubクラスを拡張しました

私の基本クラス:

public class MyBaseHub : Hub 
{ 
    protected ISession NhSession { get; set; } 

    public MyBaseHub(ISession nhSession) 
    { 
     NhSession = nhSession; 
    } 
} 

私の派生クラス:

public class MyDerivedHub : MyBaseHub 
{     
    public MyDerivedHub(ISession nhSession) : base(nhSession) { } 
} 

上記罰金構築しますが、SignalRにはJavaScriptがエラーをスローし、私は、クライアント上の接続を作成することはできません生成されました。私の基底クラスにはもっとコードがありましたが、問題を絞り込んで試してみると、問題はクライアント側にあることがわかりました。 MyBaseHubハブクライアントを定義するときに、:

生成Javascriptが例外、「予期しない番号捕捉されないでSyntaxErrorを」:スロー

myBaseHub`1: { generated properties go in here } 

だから私はSignalRハブは一度だけ継承することができることを推測していますか?私がしようとしていることが可能であれば、誰にも分かりますか?

答えて

4

あなたの質問は、ベースハブは一般的ですが、コードサンプルには表示されないということです。クラスを抽象クラスにすると、プロキシジェネレータはクラスを抽象化しません。また、[HubName]属性を使用してハブの名前を変更することもできます。

[HubName("MyHub")] 
public class MyHub2 : Hub 
{ 
} 
+0

ありがとうございました。 –

+0

私はこれを理解する助け、私もこの問題があります。クライアントアプリケーションとしてWeb API 2プロジェクトのサービスとmvc 5プロジェクトを使用すると、私のハブはWeb APIになり、クライアントアプリケーションからハブメソッドを呼び出したいと思っています。 #1。私はおそらく別のプロジェクトのために自動プロキシを生成することができません。 #2。私はプロキシメソッドを生成せずに使用すると、サーバーメソッドdosentが呼び出され、コンソールログでエラーが発生し、サーバーメソッドを呼び出す際にエラーが発生します。 –

関連する問題