从通用Hub继承

时间:2014-07-22 14:18:58

标签: signalr

假设我有这样一个基类:

public class CustomizedHub<M> : Hub
{
...
}

现在我想从这个基类继承所有实用集线器,但是我收到以下错误:

Type CustomizedHub`1<M> is a generic type definition

上述错误的主要原因是SignalR尝试将基类解析为实际的集线器。我如何强制执行它以避免这种情况?

2 个答案:

答案 0 :(得分:6)

只需将您的基类设为抽象类:

 public abstract class CustomizedHub<M> : Hub
{
...
}

答案 1 :(得分:2)

您可以编写自己的IHubDescriptorProvider实现,它将负责在注册过程中跳过通用基类。您可以检查默认行为here。您将通过DependencyResolver注入您的实施,如here所述(该基础设施可用于替换您自己的任何股票服务实施)。