Rozszerzenia plików i typy MIME w .NET

Chcę uzyskać typ MIME Content-Type z danego rozszerzenia (najlepiej bez dostępu do fizycznego pliku). Widziałem kilka pytań na ten temat, a opisane metody wykonania tego można wznowić w:

Posługiwać sięinformacje z rejestru.Posługiwać sięurlmon.dll w FindMimeFromData.Posługiwać sięInformacje o IIS.Umieść własną funkcję mapowania MIME. Oparte naten stół, na przykład.

Używam nr 1 od pewnego czasu, ale zdałem sobie sprawę, że informacje dostarczane przez rejestr nie są spójne i zależą od oprogramowania zainstalowanego na komputerze. Niektóre rozszerzenia, takie jak .zip, nie używają określonego typu zawartości.

Rozwiązanie nr 2 zmusza mnie do posiadania pliku na dysku w celu odczytania pierwszych bajtów, co jest czymś powolnym, ale może uzyskać dobre wyniki.

Trzecia metoda opiera się na usługach katalogowych i tym podobnych rzeczach, co mi się nie podoba, ponieważ muszę dodać odwołania do COM i nie jestem pewien, czy jest to spójne między IIS6 a IIS7. Nie znam też wydajności tej metody.

W końcu nie chciałem używać własnej tabeli, ale na koniec wydaje mi się, że to najlepsza opcja, jeśli chcę przyzwoitej wydajności i spójności wyników między platformami (nawet Mono).

Czy uważasz, że istnieje lepsza opcja niż użycie mojej własnej tabeli lub jedna z innych opisanych metod jest lepsza? Jakie masz doświadczenia?

questionAnswers(6)

yourAnswerToTheQuestion