我正在尝试扩展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引发错误,我无法在客户端上创建连接。我的基类中有更多的代码,但我全力以赴尝试缩小问题范围并发现问题出在客户端。
生成的Javascript在定义MyBaseHub集线器客户端时抛出异常“Uncaught SyntaxError:Unexpected Number”:
myBaseHub`1: { generated properties go in here }
所以我猜测SignalR集线器只能继承一次?有谁知道我想做什么是可能的?
答案 0 :(得分:5)
您的问题是基本集线器是通用的,但代码示例没有显示它。如果你使类抽象,代理生成器将不会提取它。此外,您可以使用[HubName]
属性重命名集线器。
[HubName("MyHub")]
public class MyHub2 : Hub
{
}