React to newly added api MediaTypeHeaderValue.Clone() #2569
This commit is contained in:
parent
d2d4d1d1d3
commit
406a3853af
|
|
@ -179,8 +179,8 @@ namespace Microsoft.AspNet.Mvc
|
||||||
throw new InvalidOperationException(Resources.FormatOutputFormatterNoMediaType(GetType().FullName));
|
throw new InvalidOperationException(Resources.FormatOutputFormatterNoMediaType(GetType().FullName));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clone the media type as we don't want it to affect the next request
|
// Copy the media type as we don't want it to affect the next request
|
||||||
selectedMediaType = MediaTypeHeaderValue.Parse(selectedMediaType.ToString());
|
selectedMediaType = selectedMediaType.Copy();
|
||||||
|
|
||||||
var selectedEncoding = SelectCharacterEncoding(context);
|
var selectedEncoding = SelectCharacterEncoding(context);
|
||||||
if (selectedEncoding == null)
|
if (selectedEncoding == null)
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
{
|
{
|
||||||
SupportedEncodings.Add(Encoding.UTF8);
|
SupportedEncodings.Add(Encoding.UTF8);
|
||||||
SupportedEncodings.Add(Encoding.Unicode);
|
SupportedEncodings.Add(Encoding.Unicode);
|
||||||
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("text/plain"));
|
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("text/plain").CopyAsReadOnly());
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool CanWriteResult(OutputFormatterContext context, MediaTypeHeaderValue contentType)
|
public override bool CanWriteResult(OutputFormatterContext context, MediaTypeHeaderValue contentType)
|
||||||
|
|
|
||||||
|
|
@ -46,9 +46,8 @@ namespace Microsoft.AspNet.Mvc
|
||||||
{
|
{
|
||||||
if (contentTypeHeader.Encoding == null)
|
if (contentTypeHeader.Encoding == null)
|
||||||
{
|
{
|
||||||
// 1. Do not modify the user supplied content type
|
// Do not modify the user supplied content type, so copy it instead
|
||||||
// 2. Parse here to handle parameters apart from charset
|
contentTypeHeader = contentTypeHeader.Copy();
|
||||||
contentTypeHeader = MediaTypeHeaderValue.Parse(contentTypeHeader.ToString());
|
|
||||||
contentTypeHeader.Encoding = Encoding.UTF8;
|
contentTypeHeader.Encoding = Encoding.UTF8;
|
||||||
|
|
||||||
encoding = Encoding.UTF8;
|
encoding = Encoding.UTF8;
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
{
|
{
|
||||||
ValidateContentType(contentType);
|
ValidateContentType(contentType);
|
||||||
format = RemovePeriodIfPresent(format);
|
format = RemovePeriodIfPresent(format);
|
||||||
_map[format] = MediaTypeHeaderValue.Parse(contentType.ToString());
|
_map[format] = contentType.CopyAsReadOnly();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,8 @@ namespace Microsoft.AspNet.Mvc
|
||||||
SupportedEncodings.Add(UTF8EncodingWithoutBOM);
|
SupportedEncodings.Add(UTF8EncodingWithoutBOM);
|
||||||
SupportedEncodings.Add(UTF16EncodingLittleEndian);
|
SupportedEncodings.Add(UTF16EncodingLittleEndian);
|
||||||
|
|
||||||
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/json"));
|
SupportedMediaTypes.Add(MediaTypeHeaderValues.ApplicationJson);
|
||||||
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("text/json"));
|
SupportedMediaTypes.Add(MediaTypeHeaderValues.TextJson);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,8 @@ namespace Microsoft.AspNet.Mvc
|
||||||
|
|
||||||
SupportedEncodings.Add(Encoding.UTF8);
|
SupportedEncodings.Add(Encoding.UTF8);
|
||||||
SupportedEncodings.Add(Encoding.Unicode);
|
SupportedEncodings.Add(Encoding.Unicode);
|
||||||
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/json"));
|
SupportedMediaTypes.Add(MediaTypeHeaderValues.ApplicationJson);
|
||||||
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("text/json"));
|
SupportedMediaTypes.Add(MediaTypeHeaderValues.TextJson);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
// Clear all values and only include json-patch+json value.
|
// Clear all values and only include json-patch+json value.
|
||||||
SupportedMediaTypes.Clear();
|
SupportedMediaTypes.Clear();
|
||||||
|
|
||||||
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/json-patch+json"));
|
SupportedMediaTypes.Add(MediaTypeHeaderValues.ApplicationJsonPatch);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using Microsoft.Net.Http.Headers;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNet.Mvc
|
||||||
|
{
|
||||||
|
internal class MediaTypeHeaderValues
|
||||||
|
{
|
||||||
|
public static readonly MediaTypeHeaderValue ApplicationJson
|
||||||
|
= MediaTypeHeaderValue.Parse("application/json").CopyAsReadOnly();
|
||||||
|
|
||||||
|
public static readonly MediaTypeHeaderValue TextJson
|
||||||
|
= MediaTypeHeaderValue.Parse("text/json").CopyAsReadOnly();
|
||||||
|
|
||||||
|
public static readonly MediaTypeHeaderValue ApplicationJsonPatch
|
||||||
|
= MediaTypeHeaderValue.Parse("application/json-patch+json").CopyAsReadOnly();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -73,9 +73,8 @@ namespace Microsoft.AspNet.Mvc
|
||||||
{
|
{
|
||||||
if (contentTypeHeader.Encoding == null)
|
if (contentTypeHeader.Encoding == null)
|
||||||
{
|
{
|
||||||
// 1. Do not modify the user supplied content type
|
// Do not modify the user supplied content type, so copy it instead
|
||||||
// 2. Parse here to handle parameters apart from charset
|
contentTypeHeader = contentTypeHeader.Copy();
|
||||||
contentTypeHeader = MediaTypeHeaderValue.Parse(contentTypeHeader.ToString());
|
|
||||||
contentTypeHeader.Encoding = Encoding.UTF8;
|
contentTypeHeader.Encoding = Encoding.UTF8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -48,9 +48,8 @@ namespace Microsoft.AspNet.Mvc
|
||||||
{
|
{
|
||||||
if (contentTypeHeader.Encoding == null)
|
if (contentTypeHeader.Encoding == null)
|
||||||
{
|
{
|
||||||
// 1. Do not modify the user supplied content type
|
// Do not modify the user supplied content type, so copy it instead
|
||||||
// 2. Parse here to handle parameters apart from charset
|
contentTypeHeader = contentTypeHeader.Copy();
|
||||||
contentTypeHeader = MediaTypeHeaderValue.Parse(contentTypeHeader.ToString());
|
|
||||||
contentTypeHeader.Encoding = Encoding.UTF8;
|
contentTypeHeader.Encoding = Encoding.UTF8;
|
||||||
|
|
||||||
encoding = Encoding.UTF8;
|
encoding = Encoding.UTF8;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using Microsoft.Net.Http.Headers;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNet.Mvc.Xml
|
||||||
|
{
|
||||||
|
internal static class MediaTypeHeaderValues
|
||||||
|
{
|
||||||
|
public static readonly MediaTypeHeaderValue ApplicationXml
|
||||||
|
= MediaTypeHeaderValue.Parse("application/xml").CopyAsReadOnly();
|
||||||
|
|
||||||
|
public static readonly MediaTypeHeaderValue TextXml
|
||||||
|
= MediaTypeHeaderValue.Parse("text/xml").CopyAsReadOnly();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -33,8 +33,8 @@ namespace Microsoft.AspNet.Mvc.Xml
|
||||||
SupportedEncodings.Add(UTF8EncodingWithoutBOM);
|
SupportedEncodings.Add(UTF8EncodingWithoutBOM);
|
||||||
SupportedEncodings.Add(UTF16EncodingLittleEndian);
|
SupportedEncodings.Add(UTF16EncodingLittleEndian);
|
||||||
|
|
||||||
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/xml"));
|
SupportedMediaTypes.Add(MediaTypeHeaderValues.ApplicationXml);
|
||||||
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("text/xml"));
|
SupportedMediaTypes.Add(MediaTypeHeaderValues.TextXml);
|
||||||
|
|
||||||
_serializerSettings = new DataContractSerializerSettings();
|
_serializerSettings = new DataContractSerializerSettings();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,8 +41,8 @@ namespace Microsoft.AspNet.Mvc.Xml
|
||||||
SupportedEncodings.Add(Encoding.UTF8);
|
SupportedEncodings.Add(Encoding.UTF8);
|
||||||
SupportedEncodings.Add(Encoding.Unicode);
|
SupportedEncodings.Add(Encoding.Unicode);
|
||||||
|
|
||||||
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/xml"));
|
SupportedMediaTypes.Add(MediaTypeHeaderValues.ApplicationXml);
|
||||||
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("text/xml"));
|
SupportedMediaTypes.Add(MediaTypeHeaderValues.TextXml);
|
||||||
|
|
||||||
WriterSettings = writerSettings;
|
WriterSettings = writerSettings;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,8 +32,8 @@ namespace Microsoft.AspNet.Mvc.Xml
|
||||||
SupportedEncodings.Add(UTF8EncodingWithoutBOM);
|
SupportedEncodings.Add(UTF8EncodingWithoutBOM);
|
||||||
SupportedEncodings.Add(UTF16EncodingLittleEndian);
|
SupportedEncodings.Add(UTF16EncodingLittleEndian);
|
||||||
|
|
||||||
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/xml"));
|
SupportedMediaTypes.Add(MediaTypeHeaderValues.ApplicationXml);
|
||||||
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("text/xml"));
|
SupportedMediaTypes.Add(MediaTypeHeaderValues.TextXml);
|
||||||
|
|
||||||
WrapperProviderFactories = new List<IWrapperProviderFactory>();
|
WrapperProviderFactories = new List<IWrapperProviderFactory>();
|
||||||
WrapperProviderFactories.Add(new SerializableErrorWrapperProviderFactory());
|
WrapperProviderFactories.Add(new SerializableErrorWrapperProviderFactory());
|
||||||
|
|
|
||||||
|
|
@ -40,8 +40,8 @@ namespace Microsoft.AspNet.Mvc.Xml
|
||||||
SupportedEncodings.Add(Encoding.UTF8);
|
SupportedEncodings.Add(Encoding.UTF8);
|
||||||
SupportedEncodings.Add(Encoding.Unicode);
|
SupportedEncodings.Add(Encoding.Unicode);
|
||||||
|
|
||||||
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/xml"));
|
SupportedMediaTypes.Add(MediaTypeHeaderValues.ApplicationXml);
|
||||||
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("text/xml"));
|
SupportedMediaTypes.Add(MediaTypeHeaderValues.TextXml);
|
||||||
|
|
||||||
WriterSettings = writerSettings;
|
WriterSettings = writerSettings;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue