Constante "application / json" en .NET framework

82

Acabo de declarar una constante para el tipo de contenido "application / json" en una de mis clases.

public const string JsonContentType = "application/json";

No estoy seguro de que sea una buena práctica.

¿Tiene .NET framework una constante predefinida para "application / json"?

Maxim Eliseev
fuente

Respuestas:

58

Si bien hay algunas constantes MIME definidas en MediaTypeNames (ver aquí ), no hay una constante para "application / json".

Poner tipos de contenido adicionales en una constante compartida es probablemente la mejor práctica, mejor que definirlos en cadenas literales un millón de veces a lo largo de su código al menos.

Además, le brinda la flexibilidad de usar tipos MIME nuevos / personalizados, que una versión específica de .NET podría no tener.

Kevin
fuente
Me alegro de que hayas mencionado la definición de una mejor práctica de constante pública. Esa es la forma #cleanCode de hacerlo en lugar de ensuciar su código aquí y allá.
RBT
La conclusión implícita de que "habilita" tipos MIME nuevos / personalizados no se cumple, ya que tener una constante de cadena definida no excluye que se acepten adiciones al conjunto abierto (todas las cadenas posibles). Dado que JSON / XML / HTML son tan omnipresentes en Internet, sería útil tener estos ensamblados .NET Net / Web estándar (en uno de los varios). Me pregunto si .NET Core cambia esta respuesta.
user2864740
Arg, o, con la respuesta relacionada ... si solo se agregó "application / json" ..
user2864740
40
.NET Core 2.1.0 tiene MediaTypeNames.Application.Jsondefinido :) Consulte github.com/dotnet/corefx/pull/26701 .
Bob Van de Vijver
76

Para agregar una respuesta actualizada: ya que MediaTypeNames.Application.Jsonse ha definido dotnet core 2.1 .

Consulte https://github.com/dotnet/corefx/pull/26701 para conocer el conjunto de cambios.

Bob Van de Vijver
fuente
3
Sin Jsonembargo, parece que la constante no está disponible en .NET Standard 2.0.
Panzercrisis
Marque esto como la mejor respuesta o actualice la mejor respuesta.
bruno.almeida