IHubClients e IHubCallerClients ocultan miembros
Para agregar compatibilidad con los resultados del cliente, IHubClients e IHubCallerClients ahora ocultan miembros de interfaz IClientProxy Client(string connectionId);
e IClientProxy Caller { get; }
con ISingleClientProxy Client(string connectionId);
e ISingleClientProxy Caller { get; }
.
Este no es un cambio importante en el código de producción a menos que use la reflexión para llamar a los métodos Client
o Caller
afectados. Es posible que tenga que actualizar las pruebas unitarias de SignalR Hubs.
Versión introducida
ASP.NET Core 7.0
Comportamiento anterior
Al usar una biblioteca de pruebas como Moq para realizar pruebas unitarias de SignalR Hub, podía escribir código similar al siguiente:
var hub = new MyHub();
var mockCaller = new Mock<IHubCallerClients>();
var mockClientProxy = new Mock<IClientProxy>();
mockCaller.Setup(x => x.Caller).Returns(mockClientProxy.Object);
hub.Clients = mockCaller.Object;
class MyHub : Hub { }
Comportamiento nuevo
var hub = new MyHub();
var mockCaller = new Mock<IHubCallerClients>();
var mockClientProxy = new Mock<ISingleClientProxy>(); // <-- updated code
mockCaller.Setup(x => x.Caller).Returns(mockClientProxy.Object);
hub.Clients = mockCaller.Object;
class MyHub : Hub { }
Tipo de cambio importante
Este cambio afecta a la compatibilidad de origen.
Motivo del cambio
El cambio se ha realizado para agregar nueva funcionalidad a SignalR. No es importante en casos de uso normales, pero puede interrumpir el código de prueba, que se actualiza fácilmente.
Acción recomendada
Actualice el código de prueba para usar la interfaz ISingleClientProxy
al emplear reflexión o código basado en reflexión.