4

我正在尝试扩展 SignalR Hub 类以创建一个基类,该基类是 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 引发错误,我无法在客户端上创建连接。我的基类中有更多代码,但我全力以赴尝试缩小问题范围,发现问题出在客户端。

定义 MyBaseHub 集线器客户端时,生成的 Javascript 会引发异常“Uncaught SyntaxError: Unexpected Number”:

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 回答