IHubClients 和 IHubCallerClients 隱藏成員

若要新增對用戶端結果的支援,IHubClientsIHubCallerClients 現在會隱藏介面成員 IClientProxy Client(string connectionId);IClientProxy Caller { get; }ISingleClientProxy Client(string connectionId);ISingleClientProxy Caller { get; }

除非您使用反映來呼叫受影響的 ClientCaller 方法,否則這不是生產程式碼的中斷性變更。 您可能需要更新單元測試 SignalR 中樞。

導入的版本

ASP.NET Core 7.0

先前的行為

使用 Moq 之類的測試程式庫來單元測試 SignalR Hub 時,您可以撰寫類似以下的程式碼:

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 { }

新的行為

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 { }

中斷性變更的類型

這項變更會影響來源相容性

變更原因

已進行變更,以將新功能新增至 SignalR。 這在一般使用案例中並非重大變更,不過,可能會中斷可輕易更新的測試程式碼。

使用反映或反映型程式碼時,更新測試程式碼以使用 ISingleClientProxy 介面。

受影響的 API