ASP.NET Core SignalR MessagePack Hub 通訊協定選項類型已從 IList<MessagePack.IFormatterResolver>
變更為 MessagePack 連結庫 MessagePackSerializerOptions
的類型。
如需這項變更的討論,請參閱 dotnet/aspnetcore#20506。
推出的版本
5.0 Preview 4
舊行為
您可以新增至選項,如下列範例所示:
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.FormatterResolvers.Add(MessagePack.Resolvers.StandardResolver.Instance);
});
並取代選項,如下所示:
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.FormatterResolvers = new List<MessagePack.IFormatterResolver>()
{
MessagePack.Resolvers.StandardResolver.Instance
};
});
新行為
您可以新增至選項,如下列範例所示:
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.SerializerOptions =
options.SerializeOptions.WithResolver(MessagePack.Resolvers.StandardResolver.Instance);
});
並取代選項,如下所示:
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.SerializerOptions = MessagePackSerializerOptions
.Standard
.WithResolver(MessagePack.Resolvers.StandardResolver.Instance)
.WithSecurity(MessagePackSecurity.UntrustedData);
});
變更的原因
這項變更是移至在 aspnet/Announcements#404 中宣告的 MessagePack v2.x 的一部分。 v2.x 連結庫已新增選項 API,更容易使用,並提供的功能比之前公開的功能清單 MessagePack.IFormatterResolver
還多。
建議的動作
這項重大變更會影響任何在 MessagePackHubProtocolOptions上設定值的人員。 如果您使用 ASP.NET Core SignalR MessagePack Hub 通訊協定和修改選項,請更新您的使用方式以使用新的選項 API,如上所示。