React to newly added api MediaTypeHeaderValue.Clone() #2569

This commit is contained in:
Kiran Challa 2015-06-26 09:49:32 -07:00
parent d2d4d1d1d3
commit 406a3853af
15 changed files with 58 additions and 26 deletions

View File

@ -179,8 +179,8 @@ namespace Microsoft.AspNet.Mvc
throw new InvalidOperationException(Resources.FormatOutputFormatterNoMediaType(GetType().FullName));
}
// Clone the media type as we don't want it to affect the next request
selectedMediaType = MediaTypeHeaderValue.Parse(selectedMediaType.ToString());
// Copy the media type as we don't want it to affect the next request
selectedMediaType = selectedMediaType.Copy();
var selectedEncoding = SelectCharacterEncoding(context);
if (selectedEncoding == null)

View File

@ -17,7 +17,7 @@ namespace Microsoft.AspNet.Mvc
{
SupportedEncodings.Add(Encoding.UTF8);
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)

View File

@ -46,9 +46,8 @@ namespace Microsoft.AspNet.Mvc
{
if (contentTypeHeader.Encoding == null)
{
// 1. Do not modify the user supplied content type
// 2. Parse here to handle parameters apart from charset
contentTypeHeader = MediaTypeHeaderValue.Parse(contentTypeHeader.ToString());
// Do not modify the user supplied content type, so copy it instead
contentTypeHeader = contentTypeHeader.Copy();
contentTypeHeader.Encoding = Encoding.UTF8;
encoding = Encoding.UTF8;

View File

@ -27,7 +27,7 @@ namespace Microsoft.AspNet.Mvc
{
ValidateContentType(contentType);
format = RemovePeriodIfPresent(format);
_map[format] = MediaTypeHeaderValue.Parse(contentType.ToString());
_map[format] = contentType.CopyAsReadOnly();
}
/// <summary>

View File

@ -28,8 +28,8 @@ namespace Microsoft.AspNet.Mvc
SupportedEncodings.Add(UTF8EncodingWithoutBOM);
SupportedEncodings.Add(UTF16EncodingLittleEndian);
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/json"));
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("text/json"));
SupportedMediaTypes.Add(MediaTypeHeaderValues.ApplicationJson);
SupportedMediaTypes.Add(MediaTypeHeaderValues.TextJson);
}
/// <summary>

View File

@ -29,8 +29,8 @@ namespace Microsoft.AspNet.Mvc
SupportedEncodings.Add(Encoding.UTF8);
SupportedEncodings.Add(Encoding.Unicode);
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/json"));
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("text/json"));
SupportedMediaTypes.Add(MediaTypeHeaderValues.ApplicationJson);
SupportedMediaTypes.Add(MediaTypeHeaderValues.TextJson);
}
/// <summary>

View File

@ -24,7 +24,7 @@ namespace Microsoft.AspNet.Mvc
// Clear all values and only include json-patch+json value.
SupportedMediaTypes.Clear();
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/json-patch+json"));
SupportedMediaTypes.Add(MediaTypeHeaderValues.ApplicationJsonPatch);
}
/// <inheritdoc />

View File

@ -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();
}
}

View File

@ -73,9 +73,8 @@ namespace Microsoft.AspNet.Mvc
{
if (contentTypeHeader.Encoding == null)
{
// 1. Do not modify the user supplied content type
// 2. Parse here to handle parameters apart from charset
contentTypeHeader = MediaTypeHeaderValue.Parse(contentTypeHeader.ToString());
// Do not modify the user supplied content type, so copy it instead
contentTypeHeader = contentTypeHeader.Copy();
contentTypeHeader.Encoding = Encoding.UTF8;
}
}

View File

@ -48,9 +48,8 @@ namespace Microsoft.AspNet.Mvc
{
if (contentTypeHeader.Encoding == null)
{
// 1. Do not modify the user supplied content type
// 2. Parse here to handle parameters apart from charset
contentTypeHeader = MediaTypeHeaderValue.Parse(contentTypeHeader.ToString());
// Do not modify the user supplied content type, so copy it instead
contentTypeHeader = contentTypeHeader.Copy();
contentTypeHeader.Encoding = Encoding.UTF8;
encoding = Encoding.UTF8;

View File

@ -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();
}
}

View File

@ -33,8 +33,8 @@ namespace Microsoft.AspNet.Mvc.Xml
SupportedEncodings.Add(UTF8EncodingWithoutBOM);
SupportedEncodings.Add(UTF16EncodingLittleEndian);
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/xml"));
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("text/xml"));
SupportedMediaTypes.Add(MediaTypeHeaderValues.ApplicationXml);
SupportedMediaTypes.Add(MediaTypeHeaderValues.TextXml);
_serializerSettings = new DataContractSerializerSettings();

View File

@ -41,8 +41,8 @@ namespace Microsoft.AspNet.Mvc.Xml
SupportedEncodings.Add(Encoding.UTF8);
SupportedEncodings.Add(Encoding.Unicode);
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/xml"));
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("text/xml"));
SupportedMediaTypes.Add(MediaTypeHeaderValues.ApplicationXml);
SupportedMediaTypes.Add(MediaTypeHeaderValues.TextXml);
WriterSettings = writerSettings;

View File

@ -32,8 +32,8 @@ namespace Microsoft.AspNet.Mvc.Xml
SupportedEncodings.Add(UTF8EncodingWithoutBOM);
SupportedEncodings.Add(UTF16EncodingLittleEndian);
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/xml"));
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("text/xml"));
SupportedMediaTypes.Add(MediaTypeHeaderValues.ApplicationXml);
SupportedMediaTypes.Add(MediaTypeHeaderValues.TextXml);
WrapperProviderFactories = new List<IWrapperProviderFactory>();
WrapperProviderFactories.Add(new SerializableErrorWrapperProviderFactory());

View File

@ -40,8 +40,8 @@ namespace Microsoft.AspNet.Mvc.Xml
SupportedEncodings.Add(Encoding.UTF8);
SupportedEncodings.Add(Encoding.Unicode);
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/xml"));
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("text/xml"));
SupportedMediaTypes.Add(MediaTypeHeaderValues.ApplicationXml);
SupportedMediaTypes.Add(MediaTypeHeaderValues.TextXml);
WriterSettings = writerSettings;