我有2个项目。C#都使用Hubs / SignalR。它们都具有相同的方法,因此我在外部DLL中创建了一个共享的抽象类。
所以...
专案1:
public class HubServerService : SharedHubService, IHostedService
{
public HubServerService(IHubContext<ServerUserHub> hubContext)
{
HubContext = hubContext;
}
}
专案2:
public class HubServerService : SharedHubService, IHostedService
{
public HubServerService(IHubContext<ClientUserHub> hubContext)
{
HubContext = hubContext;
}
}
我的抽象课:
public abstract class SharedHubService
{
protected IHubContext<dynamic> HubContext;
}
显然会引发“动态”错误。我只是出于说明目的将其放入(并删除了所有用于聚焦的方法)。
我该如何“超载”呢?
谢谢
注意:更改为拉娜提出的答案,我得到了:
如果我正确理解,则应该为SharedHubService使用模板
public class HubServerService : SharedHubService<ServerUserHub>, IHostedService
{
public HubServerService(IHubContext<ServerUserHub> hubContext)
{
HubContext = hubContext;
}
}
抽象类看起来像这样
public abstract class SharedHubService<T> where T : Microsoft.AspNetCore.SignalR.Hub
{
protected IHubContext<T> HubContext;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句