2009-06-19 3 views
44

Das nächste, was ich finden konnte, war System.Net.Mime.MediaTypeNames, aber das scheint nicht alles zu haben (wie JSON), da es mehr auf E-Mail-Anhänge konzentriert scheint.Gibt es eine Enum für die ContentType-Eigenschaft in einer HttpWebResponse ("text/plain", "application/octet-stream" usw.)?

+0

Etwas Ähnliches [hier] (http://stackoverflow.com/questions/10362140/asp-mvc-are-there-any-constants-for-the-default-content-types). Die Leute befassen sich normalerweise damit, indem sie Konstanten erstellen, da 'System.Net.Mime.MediaTypeNames' niemals eine erschöpfende/vollständige Liste wäre. – RBT

Antwort

22

Ein Enum macht nicht viel Sinn. MIME-Typen sind offen. Das heißt, die Liste ist nicht endlich: Neue Typen werden von Zeit zu Zeit hinzugefügt.

Siehe RFC4288: Media Type Specifications and Registration Procedures

+3

Es macht Sinn für mich. Nicht als Teil des .NET-Frameworks, da dieses nicht häufig aktualisiert wird (und es auch nicht sein sollte). Aber als eine separate Bibliothek, die so oft aktualisiert werden könnte, wie neue Typen hinzugefügt werden (und Benutzer der Bibliothek interessiert sind). Zeitzonen sind ebenfalls offen, aber das scheint den Nutzen von Bibliotheken auf Basis der [tz-Datenbank] (http://www.wikiwand.com/de/Tz_database) nicht zu umgehen. –

+2

@KennyEvitt Wir behalten eine interne enum für häufige Typen, die wir oft verwenden. Daran ist nichts falsch. Scheint besser als magische Saiten, oder? – crush

3

IANA's database ist am wahrscheinlichsten vollständig, aber Sie müssten diese Seiten parsen, um eine flache Liste zu erhalten.

Es gibt auch die mime.types Datei, die mit Apache kommt, die von der genannten Liste abgeleitet zu sein scheint.

+0

Eine flache Liste wird von der Datenbank der IANA bereits als CSV-Datei angeboten. – WoIIe

+0

Ich analysierte die auf Wikipedia vor einigen Jahren aufgelisteten und generierten C#, die hier: http://stackoverflow.com/questions/10362140/asp-mvc-are-there-any-constants-for-the-default-content-types –

Verwandte Themen