Signalr 信号枢纽<;T>;基本接口的实现支持

Signalr 信号枢纽<;T>;基本接口的实现支持,signalr,signalr-hub,Signalr,Signalr Hub,有一个场景,其中in希望有一个公共的基本接口,然后有派生接口,然后可以根据需要有默认的基本成员和派生成员。 代码如下所示 public interface IBaseClient { Task MessageBroadCast(dynamic msg); } public interface IXXClient : IBaseClient { Task XXX(YYY msg); //Any Additional Client methods should

有一个场景,其中in希望有一个公共的基本接口,然后有派生接口,然后可以根据需要有默认的基本成员和派生成员。 代码如下所示

public interface IBaseClient
{
    Task MessageBroadCast(dynamic msg);
}

public interface IXXClient : IBaseClient
{
    Task XXX(YYY msg);      
    //Any Additional Client methods should go here
}

public abstract class BaseHub<T> : Hub<T> where T : class 
{
    public override System.Threading.Tasks.Task OnDisconnected(bool stopCalled)
    {
       // Do any logic here
        return base.OnDisconnected(stopCalled);
    }   
}
public class XXHub : BaseHub<IXXClient> 
{
  // Can Do a broadcast from here 
    // The below will work in a method and you see the MessageBroadCast with strongly typing
    Clients.All.XXX(msg);
    // Support for below is not present at least in the version I have or may be I'm missing something.
    Clients.All.MessageBroadCast(msg);
}
公共接口IBaseClient
{
任务消息广播(动态消息);
}
公共接口IXXClient:IBaseClient
{
任务XXX(YYY消息);
//任何附加的客户端方法都应该在这里
}
公共抽象类BaseHub:Hub,其中T:class
{
公共覆盖System.Threading.Tasks.Task OnDisconnected(布尔停止调用)
{
//这里有什么逻辑吗
返回基.OnDisconnected(stopCalled);
}   
}
公共类XXHub:BaseHub
{
//我可以在这里广播吗
//下面的将在一个方法中工作,您可以看到带有强类型的MessageBroadCast
Clients.All.XXX(msg);
//对以下内容的支持不存在,至少在我拥有的版本中不存在,或者可能是我遗漏了什么。
Clients.All.MessageBroadCast(msg);
}
问题或所需信息:在Signalr2.1内核中:获取一条错误消息,指出MessageBroadCast未提供IXXClient实现

signer在运行时创建类型时没有选择基本接口方法有什么具体原因吗。特定于GenerateInterface实现(ModuleBuilder ModuleBuilder)

如果从设计的角度来看这是有限制的,那么最好能够在基本接口中保留一些常见的操作。请建议


谢谢你的时间

这是信号器的
Hub
实现中的一个错误。正如您所发现的,不支持派生接口

基本接口方法没有被拾取的具体原因。这只是一个疏忽。我可以肯定地说,因为

同时,为了解决这个问题,您需要将所有客户端方法放在一个接口中。我知道这远远不够理想

您可以遵循。目前,没有为该错误指定里程碑。请随意对此问题发表评论,表明修复此错误对您很重要。这有助于进行分类