Update corefx dependencies and react to changes in JSON API (#9563)

This commit is contained in:
Nate McMaster 2019-04-19 11:42:41 -07:00 committed by GitHub
parent 5ff2910d09
commit 9212f4a3df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 145 additions and 138 deletions

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
This file is used by automation to update Versions.props and may be used for other purposes, such as This file is used by automation to update Versions.props and may be used for other purposes, such as
@ -285,96 +285,96 @@
<Uri>https://github.com/aspnet/Extensions</Uri> <Uri>https://github.com/aspnet/Extensions</Uri>
<Sha>358e5fd9eb213b60f94c01aaacf27d2297aa4f30</Sha> <Sha>358e5fd9eb213b60f94c01aaacf27d2297aa4f30</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.Bcl.Json.Sources" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="Microsoft.Bcl.Json.Sources" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.CSharp" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="Microsoft.CSharp" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.Win32.Registry" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="Microsoft.Win32.Registry" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="System.ComponentModel.Annotations" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="System.ComponentModel.Annotations" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="System.Data.SqlClient" Version="4.7.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="System.Data.SqlClient" Version="4.7.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="System.Diagnostics.EventLog" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="System.Diagnostics.EventLog" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="System.IO.Pipelines" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="System.IO.Pipelines" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="System.Net.Http.WinHttpHandler" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="System.Net.Http.WinHttpHandler" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="System.Reflection.Metadata" Version="1.7.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="System.Reflection.Metadata" Version="1.7.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="System.Security.Cryptography.Cng" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="System.Security.Cryptography.Cng" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="System.Security.Cryptography.Pkcs" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="System.Security.Cryptography.Pkcs" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="System.Security.Cryptography.Xml" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="System.Security.Cryptography.Xml" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="System.Security.Permissions" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="System.Security.Permissions" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="System.Security.Principal.Windows" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="System.Security.Principal.Windows" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="System.ServiceProcess.ServiceController" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="System.ServiceProcess.ServiceController" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="System.Text.Encodings.Web" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="System.Text.Encodings.Web" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="System.Threading.Channels" Version="4.6.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="System.Threading.Channels" Version="4.6.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.Extensions.DependencyModel" Version="3.0.0-preview5-27618-01" CoherentParentDependency="Microsoft.Extensions.Logging"> <Dependency Name="Microsoft.Extensions.DependencyModel" Version="3.0.0-preview5-27619-03" CoherentParentDependency="Microsoft.Extensions.Logging">
<Uri>https://github.com/dotnet/core-setup</Uri> <Uri>https://github.com/dotnet/core-setup</Uri>
<Sha>0ed64989889a5a371a81c926cb87d0abea9f1763</Sha> <Sha>de216246a046668d10279f7e113a2b9384660652</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.NETCore.App" Version="3.0.0-preview5-27618-01" CoherentParentDependency="Microsoft.Extensions.Logging"> <Dependency Name="Microsoft.NETCore.App" Version="3.0.0-preview5-27619-03" CoherentParentDependency="Microsoft.Extensions.Logging">
<Uri>https://github.com/dotnet/core-setup</Uri> <Uri>https://github.com/dotnet/core-setup</Uri>
<Sha>0ed64989889a5a371a81c926cb87d0abea9f1763</Sha> <Sha>de216246a046668d10279f7e113a2b9384660652</Sha>
</Dependency> </Dependency>
</ProductDependencies> </ProductDependencies>
<ToolsetDependencies> <ToolsetDependencies>
<!-- Listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 --> <!-- Listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
<Dependency Name="Microsoft.NETCore.Platforms" Version="3.0.0-preview5.19217.11" CoherentParentDependency="Microsoft.NETCore.App"> <Dependency Name="Microsoft.NETCore.Platforms" Version="3.0.0-preview5.19218.11" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri> <Uri>https://github.com/dotnet/corefx</Uri>
<Sha>315fd00cb2465390900209919cdb2bf6bc44ae0e</Sha> <Sha>0a9a366e290aded3e9bf5d082d6beee5ff560177</Sha>
</Dependency> </Dependency>
<Dependency Name="Internal.AspNetCore.Analyzers" Version="3.0.0-preview5.19218.3" CoherentParentDependency="Microsoft.EntityFrameworkCore"> <Dependency Name="Internal.AspNetCore.Analyzers" Version="3.0.0-preview5.19218.3" CoherentParentDependency="Microsoft.EntityFrameworkCore">
<Uri>https://github.com/aspnet/Extensions</Uri> <Uri>https://github.com/aspnet/Extensions</Uri>

View File

@ -1,4 +1,4 @@
<!-- <!--
This file defines the versions of external dependencies used by ASP.NET Core. This file defines the versions of external dependencies used by ASP.NET Core.
This file might be updated by automation. This file might be updated by automation.
@ -19,30 +19,30 @@
<!-- Packages from dotnet/arcade --> <!-- Packages from dotnet/arcade -->
<MicrosoftDotNetGenAPIPackageVersion>1.0.0-beta.19218.1</MicrosoftDotNetGenAPIPackageVersion> <MicrosoftDotNetGenAPIPackageVersion>1.0.0-beta.19218.1</MicrosoftDotNetGenAPIPackageVersion>
<!-- Packages from dotnet/core-setup --> <!-- Packages from dotnet/core-setup -->
<MicrosoftExtensionsDependencyModelPackageVersion>3.0.0-preview5-27618-01</MicrosoftExtensionsDependencyModelPackageVersion> <MicrosoftExtensionsDependencyModelPackageVersion>3.0.0-preview5-27619-03</MicrosoftExtensionsDependencyModelPackageVersion>
<MicrosoftNETCoreAppPackageVersion>3.0.0-preview5-27618-01</MicrosoftNETCoreAppPackageVersion> <MicrosoftNETCoreAppPackageVersion>3.0.0-preview5-27619-03</MicrosoftNETCoreAppPackageVersion>
<!-- Packages from dotnet/corefx --> <!-- Packages from dotnet/corefx -->
<MicrosoftBclJsonSourcesPackageVersion>4.6.0-preview5.19217.11</MicrosoftBclJsonSourcesPackageVersion> <MicrosoftBclJsonSourcesPackageVersion>4.6.0-preview5.19218.11</MicrosoftBclJsonSourcesPackageVersion>
<MicrosoftCSharpPackageVersion>4.6.0-preview5.19217.11</MicrosoftCSharpPackageVersion> <MicrosoftCSharpPackageVersion>4.6.0-preview5.19218.11</MicrosoftCSharpPackageVersion>
<MicrosoftWin32RegistryPackageVersion>4.6.0-preview5.19217.11</MicrosoftWin32RegistryPackageVersion> <MicrosoftWin32RegistryPackageVersion>4.6.0-preview5.19218.11</MicrosoftWin32RegistryPackageVersion>
<SystemComponentModelAnnotationsPackageVersion>4.6.0-preview5.19217.11</SystemComponentModelAnnotationsPackageVersion> <SystemComponentModelAnnotationsPackageVersion>4.6.0-preview5.19218.11</SystemComponentModelAnnotationsPackageVersion>
<SystemDataSqlClientPackageVersion>4.7.0-preview5.19217.11</SystemDataSqlClientPackageVersion> <SystemDataSqlClientPackageVersion>4.7.0-preview5.19218.11</SystemDataSqlClientPackageVersion>
<SystemDiagnosticsEventLogPackageVersion>4.6.0-preview5.19217.11</SystemDiagnosticsEventLogPackageVersion> <SystemDiagnosticsEventLogPackageVersion>4.6.0-preview5.19218.11</SystemDiagnosticsEventLogPackageVersion>
<SystemIOPipelinesPackageVersion>4.6.0-preview5.19217.11</SystemIOPipelinesPackageVersion> <SystemIOPipelinesPackageVersion>4.6.0-preview5.19218.11</SystemIOPipelinesPackageVersion>
<SystemNetHttpWinHttpHandlerPackageVersion>4.6.0-preview5.19217.11</SystemNetHttpWinHttpHandlerPackageVersion> <SystemNetHttpWinHttpHandlerPackageVersion>4.6.0-preview5.19218.11</SystemNetHttpWinHttpHandlerPackageVersion>
<SystemNetWebSocketsWebSocketProtocolPackageVersion>4.6.0-preview5.19217.11</SystemNetWebSocketsWebSocketProtocolPackageVersion> <SystemNetWebSocketsWebSocketProtocolPackageVersion>4.6.0-preview5.19218.11</SystemNetWebSocketsWebSocketProtocolPackageVersion>
<SystemReflectionMetadataPackageVersion>1.7.0-preview5.19217.11</SystemReflectionMetadataPackageVersion> <SystemReflectionMetadataPackageVersion>1.7.0-preview5.19218.11</SystemReflectionMetadataPackageVersion>
<SystemRuntimeCompilerServicesUnsafePackageVersion>4.6.0-preview5.19217.11</SystemRuntimeCompilerServicesUnsafePackageVersion> <SystemRuntimeCompilerServicesUnsafePackageVersion>4.6.0-preview5.19218.11</SystemRuntimeCompilerServicesUnsafePackageVersion>
<SystemSecurityCryptographyCngPackageVersion>4.6.0-preview5.19217.11</SystemSecurityCryptographyCngPackageVersion> <SystemSecurityCryptographyCngPackageVersion>4.6.0-preview5.19218.11</SystemSecurityCryptographyCngPackageVersion>
<SystemSecurityCryptographyPkcsPackageVersion>4.6.0-preview5.19217.11</SystemSecurityCryptographyPkcsPackageVersion> <SystemSecurityCryptographyPkcsPackageVersion>4.6.0-preview5.19218.11</SystemSecurityCryptographyPkcsPackageVersion>
<SystemSecurityCryptographyXmlPackageVersion>4.6.0-preview5.19217.11</SystemSecurityCryptographyXmlPackageVersion> <SystemSecurityCryptographyXmlPackageVersion>4.6.0-preview5.19218.11</SystemSecurityCryptographyXmlPackageVersion>
<SystemSecurityPermissionsPackageVersion>4.6.0-preview5.19217.11</SystemSecurityPermissionsPackageVersion> <SystemSecurityPermissionsPackageVersion>4.6.0-preview5.19218.11</SystemSecurityPermissionsPackageVersion>
<SystemSecurityPrincipalWindowsPackageVersion>4.6.0-preview5.19217.11</SystemSecurityPrincipalWindowsPackageVersion> <SystemSecurityPrincipalWindowsPackageVersion>4.6.0-preview5.19218.11</SystemSecurityPrincipalWindowsPackageVersion>
<SystemServiceProcessServiceControllerPackageVersion>4.6.0-preview5.19217.11</SystemServiceProcessServiceControllerPackageVersion> <SystemServiceProcessServiceControllerPackageVersion>4.6.0-preview5.19218.11</SystemServiceProcessServiceControllerPackageVersion>
<SystemTextEncodingsWebPackageVersion>4.6.0-preview5.19217.11</SystemTextEncodingsWebPackageVersion> <SystemTextEncodingsWebPackageVersion>4.6.0-preview5.19218.11</SystemTextEncodingsWebPackageVersion>
<SystemThreadingChannelsPackageVersion>4.6.0-preview5.19217.11</SystemThreadingChannelsPackageVersion> <SystemThreadingChannelsPackageVersion>4.6.0-preview5.19218.11</SystemThreadingChannelsPackageVersion>
<!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 --> <!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
<MicrosoftNETCorePlatformsPackageVersion>3.0.0-preview5.19217.11</MicrosoftNETCorePlatformsPackageVersion> <MicrosoftNETCorePlatformsPackageVersion>3.0.0-preview5.19218.11</MicrosoftNETCorePlatformsPackageVersion>
<!-- Packages from aspnet/Extensions --> <!-- Packages from aspnet/Extensions -->
<InternalAspNetCoreAnalyzersPackageVersion>3.0.0-preview5.19218.3</InternalAspNetCoreAnalyzersPackageVersion> <InternalAspNetCoreAnalyzersPackageVersion>3.0.0-preview5.19218.3</InternalAspNetCoreAnalyzersPackageVersion>
<MicrosoftAspNetCoreAnalyzerTestingPackageVersion>3.0.0-preview5.19218.3</MicrosoftAspNetCoreAnalyzerTestingPackageVersion> <MicrosoftAspNetCoreAnalyzerTestingPackageVersion>3.0.0-preview5.19218.3</MicrosoftAspNetCoreAnalyzerTestingPackageVersion>

View File

@ -85,7 +85,7 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure
using (var bufferWriter = new ArrayBufferWriter<byte>()) using (var bufferWriter = new ArrayBufferWriter<byte>())
{ {
var writer = new Utf8JsonWriter(bufferWriter); using var writer = new Utf8JsonWriter(bufferWriter);
writer.WriteStartObject(); writer.WriteStartObject();
foreach (var (key, value) in values) foreach (var (key, value) in values)
{ {

View File

@ -103,7 +103,7 @@ namespace JwtBearerSample
private void Serialize(IList<Todo> todos, IBufferWriter<byte> output) private void Serialize(IList<Todo> todos, IBufferWriter<byte> output)
{ {
var writer = new Utf8JsonWriter(output); using var writer = new Utf8JsonWriter(output);
writer.WriteStartArray(); writer.WriteStartArray();
foreach (var todo in todos) foreach (var todo in todos)
{ {

View File

@ -4,6 +4,7 @@
using System; using System;
using System.Buffers; using System.Buffers;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Text.Json; using System.Text.Json;
@ -35,25 +36,25 @@ namespace Microsoft.AspNetCore.Http.Connections
public static void WriteResponse(NegotiationResponse response, IBufferWriter<byte> output) public static void WriteResponse(NegotiationResponse response, IBufferWriter<byte> output)
{ {
var writer = new Utf8JsonWriter(output, new JsonWriterState(new JsonWriterOptions() { SkipValidation = true })); using var writer = new Utf8JsonWriter(output, new JsonWriterOptions() { SkipValidation = true });
writer.WriteStartObject(); writer.WriteStartObject();
if (!string.IsNullOrEmpty(response.Url)) if (!string.IsNullOrEmpty(response.Url))
{ {
writer.WriteString(UrlPropertyNameBytes, response.Url, escape: false); writer.WriteString(UrlPropertyNameBytes, response.Url);
} }
if (!string.IsNullOrEmpty(response.AccessToken)) if (!string.IsNullOrEmpty(response.AccessToken))
{ {
writer.WriteString(AccessTokenPropertyNameBytes, response.AccessToken, escape: false); writer.WriteString(AccessTokenPropertyNameBytes, response.AccessToken);
} }
if (!string.IsNullOrEmpty(response.ConnectionId)) if (!string.IsNullOrEmpty(response.ConnectionId))
{ {
writer.WriteString(ConnectionIdPropertyNameBytes, response.ConnectionId, escape: false); writer.WriteString(ConnectionIdPropertyNameBytes, response.ConnectionId);
} }
writer.WriteStartArray(AvailableTransportsPropertyNameBytes, escape: false); writer.WriteStartArray(AvailableTransportsPropertyNameBytes);
if (response.AvailableTransports != null) if (response.AvailableTransports != null)
{ {
@ -62,20 +63,20 @@ namespace Microsoft.AspNetCore.Http.Connections
writer.WriteStartObject(); writer.WriteStartObject();
if (availableTransport.Transport != null) if (availableTransport.Transport != null)
{ {
writer.WriteString(TransportPropertyNameBytes, availableTransport.Transport, escape: false); writer.WriteString(TransportPropertyNameBytes, availableTransport.Transport);
} }
else else
{ {
// Might be able to remove this after https://github.com/dotnet/corefx/issues/34632 is resolved // Might be able to remove this after https://github.com/dotnet/corefx/issues/34632 is resolved
writer.WriteNull(TransportPropertyNameBytes, escape: false); writer.WriteNull(TransportPropertyNameBytes);
} }
writer.WriteStartArray(TransferFormatsPropertyNameBytes, escape: false); writer.WriteStartArray(TransferFormatsPropertyNameBytes);
if (availableTransport.TransferFormats != null) if (availableTransport.TransferFormats != null)
{ {
foreach (var transferFormat in availableTransport.TransferFormats) foreach (var transferFormat in availableTransport.TransferFormats)
{ {
writer.WriteStringValue(transferFormat, escape: false); writer.WriteStringValue(transferFormat);
} }
} }
@ -87,7 +88,8 @@ namespace Microsoft.AspNetCore.Http.Connections
writer.WriteEndArray(); writer.WriteEndArray();
writer.WriteEndObject(); writer.WriteEndObject();
writer.Flush(isFinalBlock: true); writer.Flush();
Debug.Assert(writer.CurrentDepth == 0);
} }
public static NegotiationResponse ParseResponse(ReadOnlySpan<byte> content) public static NegotiationResponse ParseResponse(ReadOnlySpan<byte> content)

View File

@ -4,6 +4,7 @@
using System; using System;
using System.Buffers; using System.Buffers;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.IO; using System.IO;
using System.Runtime.ExceptionServices; using System.Runtime.ExceptionServices;
using System.Text.Json; using System.Text.Json;
@ -443,55 +444,56 @@ namespace Microsoft.AspNetCore.SignalR.Protocol
private void WriteMessageCore(HubMessage message, IBufferWriter<byte> stream) private void WriteMessageCore(HubMessage message, IBufferWriter<byte> stream)
{ {
var writer = new Utf8JsonWriter(stream); using var writer = new Utf8JsonWriter(stream);
writer.WriteStartObject(); writer.WriteStartObject();
switch (message) switch (message)
{ {
case InvocationMessage m: case InvocationMessage m:
WriteMessageType(ref writer, HubProtocolConstants.InvocationMessageType); WriteMessageType(writer, HubProtocolConstants.InvocationMessageType);
WriteHeaders(ref writer, m); WriteHeaders(writer, m);
WriteInvocationMessage(m, ref writer); WriteInvocationMessage(m, writer);
break; break;
case StreamInvocationMessage m: case StreamInvocationMessage m:
WriteMessageType(ref writer, HubProtocolConstants.StreamInvocationMessageType); WriteMessageType(writer, HubProtocolConstants.StreamInvocationMessageType);
WriteHeaders(ref writer, m); WriteHeaders(writer, m);
WriteStreamInvocationMessage(m, ref writer); WriteStreamInvocationMessage(m, writer);
break; break;
case StreamItemMessage m: case StreamItemMessage m:
WriteMessageType(ref writer, HubProtocolConstants.StreamItemMessageType); WriteMessageType(writer, HubProtocolConstants.StreamItemMessageType);
WriteHeaders(ref writer, m); WriteHeaders(writer, m);
WriteStreamItemMessage(m, ref writer); WriteStreamItemMessage(m, writer);
break; break;
case CompletionMessage m: case CompletionMessage m:
WriteMessageType(ref writer, HubProtocolConstants.CompletionMessageType); WriteMessageType(writer, HubProtocolConstants.CompletionMessageType);
WriteHeaders(ref writer, m); WriteHeaders(writer, m);
WriteCompletionMessage(m, ref writer); WriteCompletionMessage(m, writer);
break; break;
case CancelInvocationMessage m: case CancelInvocationMessage m:
WriteMessageType(ref writer, HubProtocolConstants.CancelInvocationMessageType); WriteMessageType(writer, HubProtocolConstants.CancelInvocationMessageType);
WriteHeaders(ref writer, m); WriteHeaders(writer, m);
WriteCancelInvocationMessage(m, ref writer); WriteCancelInvocationMessage(m, writer);
break; break;
case PingMessage _: case PingMessage _:
WriteMessageType(ref writer, HubProtocolConstants.PingMessageType); WriteMessageType(writer, HubProtocolConstants.PingMessageType);
break; break;
case CloseMessage m: case CloseMessage m:
WriteMessageType(ref writer, HubProtocolConstants.CloseMessageType); WriteMessageType(writer, HubProtocolConstants.CloseMessageType);
WriteCloseMessage(m, ref writer); WriteCloseMessage(m, writer);
break; break;
default: default:
throw new InvalidOperationException($"Unsupported message type: {message.GetType().FullName}"); throw new InvalidOperationException($"Unsupported message type: {message.GetType().FullName}");
} }
writer.WriteEndObject(); writer.WriteEndObject();
writer.Flush(); writer.Flush();
Debug.Assert(writer.CurrentDepth == 0);
} }
private void WriteHeaders(ref Utf8JsonWriter writer, HubInvocationMessage message) private void WriteHeaders(Utf8JsonWriter writer, HubInvocationMessage message)
{ {
if (message.Headers != null && message.Headers.Count > 0) if (message.Headers != null && message.Headers.Count > 0)
{ {
writer.WriteStartObject(HeadersPropertyNameBytes, escape: false); writer.WriteStartObject(HeadersPropertyNameBytes);
foreach (var value in message.Headers) foreach (var value in message.Headers)
{ {
writer.WriteString(value.Key, value.Value); writer.WriteString(value.Key, value.Value);
@ -500,64 +502,64 @@ namespace Microsoft.AspNetCore.SignalR.Protocol
} }
} }
private void WriteCompletionMessage(CompletionMessage message, ref Utf8JsonWriter writer) private void WriteCompletionMessage(CompletionMessage message, Utf8JsonWriter writer)
{ {
WriteInvocationId(message, ref writer); WriteInvocationId(message, writer);
if (!string.IsNullOrEmpty(message.Error)) if (!string.IsNullOrEmpty(message.Error))
{ {
writer.WriteString(ErrorPropertyNameBytes, message.Error, escape: false); writer.WriteString(ErrorPropertyNameBytes, message.Error);
} }
else if (message.HasResult) else if (message.HasResult)
{ {
using var token = GetParsedObject(message.Result, message.Result?.GetType()); using var token = GetParsedObject(message.Result, message.Result?.GetType());
token.RootElement.WriteAsProperty(ResultPropertyNameBytes, ref writer); token.RootElement.WriteAsProperty(ResultPropertyNameBytes, writer);
} }
} }
private void WriteCancelInvocationMessage(CancelInvocationMessage message, ref Utf8JsonWriter writer) private void WriteCancelInvocationMessage(CancelInvocationMessage message, Utf8JsonWriter writer)
{ {
WriteInvocationId(message, ref writer); WriteInvocationId(message, writer);
} }
private void WriteStreamItemMessage(StreamItemMessage message, ref Utf8JsonWriter writer) private void WriteStreamItemMessage(StreamItemMessage message, Utf8JsonWriter writer)
{ {
WriteInvocationId(message, ref writer); WriteInvocationId(message, writer);
using var token = GetParsedObject(message.Item, message.Item?.GetType()); using var token = GetParsedObject(message.Item, message.Item?.GetType());
token.RootElement.WriteAsProperty(ItemPropertyNameBytes, ref writer); token.RootElement.WriteAsProperty(ItemPropertyNameBytes, writer);
} }
private void WriteInvocationMessage(InvocationMessage message, ref Utf8JsonWriter writer) private void WriteInvocationMessage(InvocationMessage message, Utf8JsonWriter writer)
{ {
WriteInvocationId(message, ref writer); WriteInvocationId(message, writer);
writer.WriteString(TargetPropertyNameBytes, message.Target, escape: false); writer.WriteString(TargetPropertyNameBytes, message.Target);
WriteArguments(message.Arguments, ref writer); WriteArguments(message.Arguments, writer);
WriteStreamIds(message.StreamIds, ref writer); WriteStreamIds(message.StreamIds, writer);
} }
private void WriteStreamInvocationMessage(StreamInvocationMessage message, ref Utf8JsonWriter writer) private void WriteStreamInvocationMessage(StreamInvocationMessage message, Utf8JsonWriter writer)
{ {
WriteInvocationId(message, ref writer); WriteInvocationId(message, writer);
writer.WriteString(TargetPropertyNameBytes, message.Target, escape: false); writer.WriteString(TargetPropertyNameBytes, message.Target);
WriteArguments(message.Arguments, ref writer); WriteArguments(message.Arguments, writer);
WriteStreamIds(message.StreamIds, ref writer); WriteStreamIds(message.StreamIds, writer);
} }
private void WriteCloseMessage(CloseMessage message, ref Utf8JsonWriter writer) private void WriteCloseMessage(CloseMessage message, Utf8JsonWriter writer)
{ {
if (message.Error != null) if (message.Error != null)
{ {
writer.WriteString(ErrorPropertyNameBytes, message.Error, escape: false); writer.WriteString(ErrorPropertyNameBytes, message.Error);
} }
} }
private void WriteArguments(object[] arguments, ref Utf8JsonWriter writer) private void WriteArguments(object[] arguments, Utf8JsonWriter writer)
{ {
writer.WriteStartArray(ArgumentsPropertyNameBytes, escape: false); writer.WriteStartArray(ArgumentsPropertyNameBytes);
foreach (var argument in arguments) foreach (var argument in arguments)
{ {
var type = argument?.GetType(); var type = argument?.GetType();
@ -572,7 +574,7 @@ namespace Microsoft.AspNetCore.SignalR.Protocol
else else
{ {
using var token = GetParsedObject(argument, type); using var token = GetParsedObject(argument, type);
token.RootElement.WriteAsValue(ref writer); token.RootElement.WriteAsValue(writer);
} }
} }
writer.WriteEndArray(); writer.WriteEndArray();
@ -585,14 +587,14 @@ namespace Microsoft.AspNetCore.SignalR.Protocol
return token; return token;
} }
private void WriteStreamIds(string[] streamIds, ref Utf8JsonWriter writer) private void WriteStreamIds(string[] streamIds, Utf8JsonWriter writer)
{ {
if (streamIds == null) if (streamIds == null)
{ {
return; return;
} }
writer.WriteStartArray(StreamIdsPropertyNameBytes, escape: false); writer.WriteStartArray(StreamIdsPropertyNameBytes);
foreach (var streamId in streamIds) foreach (var streamId in streamIds)
{ {
writer.WriteStringValue(streamId); writer.WriteStringValue(streamId);
@ -600,17 +602,17 @@ namespace Microsoft.AspNetCore.SignalR.Protocol
writer.WriteEndArray(); writer.WriteEndArray();
} }
private static void WriteInvocationId(HubInvocationMessage message, ref Utf8JsonWriter writer) private static void WriteInvocationId(HubInvocationMessage message, Utf8JsonWriter writer)
{ {
if (!string.IsNullOrEmpty(message.InvocationId)) if (!string.IsNullOrEmpty(message.InvocationId))
{ {
writer.WriteString(InvocationIdPropertyNameBytes, message.InvocationId, escape: false); writer.WriteString(InvocationIdPropertyNameBytes, message.InvocationId);
} }
} }
private static void WriteMessageType(ref Utf8JsonWriter writer, int type) private static void WriteMessageType(Utf8JsonWriter writer, int type)
{ {
writer.WriteNumber(TypePropertyNameBytes, type, escape: false); writer.WriteNumber(TypePropertyNameBytes, type);
} }
private HubMessage BindCancelInvocationMessage(string invocationId) private HubMessage BindCancelInvocationMessage(string invocationId)

View File

@ -4,6 +4,7 @@
using System; using System;
using System.Buffers; using System.Buffers;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Diagnostics;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Text.Json; using System.Text.Json;
@ -59,13 +60,14 @@ namespace Microsoft.AspNetCore.SignalR.Protocol
/// <param name="output">The output writer.</param> /// <param name="output">The output writer.</param>
public static void WriteRequestMessage(HandshakeRequestMessage requestMessage, IBufferWriter<byte> output) public static void WriteRequestMessage(HandshakeRequestMessage requestMessage, IBufferWriter<byte> output)
{ {
var writer = new Utf8JsonWriter(output, new JsonWriterState(new JsonWriterOptions() { SkipValidation = true })); using var writer = new Utf8JsonWriter(output, new JsonWriterOptions() { SkipValidation = true });
writer.WriteStartObject(); writer.WriteStartObject();
writer.WriteString(ProtocolPropertyNameBytes, requestMessage.Protocol, escape: false); writer.WriteString(ProtocolPropertyNameBytes, requestMessage.Protocol);
writer.WriteNumber(ProtocolVersionPropertyNameBytes, requestMessage.Version, escape: false); writer.WriteNumber(ProtocolVersionPropertyNameBytes, requestMessage.Version);
writer.WriteEndObject(); writer.WriteEndObject();
writer.Flush(isFinalBlock: true); writer.Flush();
Debug.Assert(writer.CurrentDepth == 0);
TextMessageFormatter.WriteRecordSeparator(output); TextMessageFormatter.WriteRecordSeparator(output);
} }
@ -77,7 +79,7 @@ namespace Microsoft.AspNetCore.SignalR.Protocol
/// <param name="output">The output writer.</param> /// <param name="output">The output writer.</param>
public static void WriteResponseMessage(HandshakeResponseMessage responseMessage, IBufferWriter<byte> output) public static void WriteResponseMessage(HandshakeResponseMessage responseMessage, IBufferWriter<byte> output)
{ {
var writer = new Utf8JsonWriter(output, new JsonWriterState(new JsonWriterOptions() { SkipValidation = true })); using var writer = new Utf8JsonWriter(output, new JsonWriterOptions() { SkipValidation = true });
writer.WriteStartObject(); writer.WriteStartObject();
if (!string.IsNullOrEmpty(responseMessage.Error)) if (!string.IsNullOrEmpty(responseMessage.Error))
@ -85,10 +87,11 @@ namespace Microsoft.AspNetCore.SignalR.Protocol
writer.WriteString(ErrorPropertyNameBytes, responseMessage.Error); writer.WriteString(ErrorPropertyNameBytes, responseMessage.Error);
} }
writer.WriteNumber(MinorVersionPropertyNameBytes, responseMessage.MinorVersion, escape: false); writer.WriteNumber(MinorVersionPropertyNameBytes, responseMessage.MinorVersion);
writer.WriteEndObject(); writer.WriteEndObject();
writer.Flush(isFinalBlock: true); writer.Flush();
Debug.Assert(writer.CurrentDepth == 0);
TextMessageFormatter.WriteRecordSeparator(output); TextMessageFormatter.WriteRecordSeparator(output);
} }