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.

Actualice el código de prueba para usar la interfaz ISingleClientProxy al emplear reflexión o código basado en reflexión.

API afectadas