4

私はSignalRHubクラスを拡張して、基本的にSignalR Hubであるが、いくつかの追加のpzazzを備えた基本クラスを作成しようとしています。

私の基本クラス:

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はエラーをスローし、クライアントで接続を作成できません。基本クラスにはもっと多くのコードがありましたが、問題を絞り込むためにすべてを取り出して、問題がクライアント側にあることがわかりました。

生成されたJavascriptは、MyBaseHubハブクライアントを定義するときに、例外「Uncaught SyntaxError:UnexpectedNumber」をスローします。

myBaseHub`1: { generated properties go in here }

では、SignalRハブは一度しか継承できないと思いますか?私がやろうとしていることが可能かどうか誰かが知っていますか?

4

1 に答える 1

5

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

[HubName("MyHub")]
public class MyHub2 : Hub 
{
}
于 2012-04-29T17:56:31.807 に答える