Константа “application / json” у .NET framework


86

Я щойно оголосив константу для типу вмісту "application / json" в одному зі своїх класів.

public const string JsonContentType = "application/json";

Я не впевнений, що це хороша практика.

Чи має .NET framework попередньо визначений const для "application / json"?



Відповіді:


61

Хоча в MediaTypeNames визначено деякі константи MIME (див. Тут ), для "application / json" немає константи.

Додавання додаткових типів вмісту у спільний const - це, мабуть, найкраща практика, краще, ніж визначити їх у рядкових літералах принаймні мільйон разів у коді.

Плюс це дає вам гнучкість використання нових / спеціальних типів MIME, яких у певній .NET-версії може не бути.


Радий, що ви згадали про визначення найкращої практики публічного конкурсу. Це #cleanCode спосіб зробити це, а не засмічувати свій код там і там.
RBT

Мається на увазі висновок про те, що він "дозволяє" нові / користувацькі типи MIME, не підтримується, оскільки визначення рядкової константи не виключає доповнення до відкритого набору (усіх можливих рядків). Оскільки JSON / XML / HTML настільки всюдисущі в Інтернеті, наявність цих стандартних (в одній з декількох) збірок .NET Net / Web було б корисним .. Цікаво, чи змінює .NET Core цю відповідь?
user2864740

Arg, або, з відповідною відповіддю .. якщо було додано лише "application / json" ..
user2864740

45
.NET Core 2.1.0 має MediaTypeNames.Application.Jsonвизначене :) Див. Github.com/dotnet/corefx/pull/26701 .
Боб Ван де Віжвер

79

Для того, щоб додати сучасну відповідь: оскільки MediaTypeNames.Application.Jsonбуло визначено dotnet core 2.1 .

Дивіться https://github.com/dotnet/corefx/pull/26701 для набору змін.


5
Схоже, Jsonконстанта недоступна у .NET Standard 2.0, хоча, на жаль.
Panzercrisis

Позначте це як найкращу відповідь або оновіть найкращу відповідь.
bruno.almeida
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.