Try ExifLib - there is a demo project with a source that extracts all tags from an image that you could use.
Edit: I'm going to add my answer to explain why I believe that the .Net Image class does not process all EXIF tags, as we might expect. However, I am going to leave my initial link and suggestion above, as I consider this to be the best option at the end.
Ok, on Why :
, , , Windows 7 EXIF make ( > a > "" > "" ), .Net PropertyItems EXIF. , HTC One, , , . ( , -2.jpg, original-4.jpg original-8.jpg .)
img.PropertyItems.Count() 32. , ! (, , Windows 7 EXIF). , .PropertyItems Id ( ):
- 32
- 271 (0x010F - ) 272 (0x0110 - ).
- 282, 283, 296, 305, 306 27
img.PropertyItems.Single(x => x.Id == 305).Value, SoftwareUsed ( 206, DateTime) EXIF
, , .Net Image EXIF 271/272 ( , Camera Make/Model)?
ExifLib ( ) , , :
private byte[] GetTagBytes(...) ExifReader.cs( 655), , "Exif IDF"- ,
- ASCII - .
, , .Net Image EXIF PropertyItems, .
ExifDataView (http://www.nirsoft.net/utils/exif_data_view.html) :
- , .Net Make Model, 4 ( "HTC" + )
- .Net, 5 ( "HTC" + null + null?)
- ( -4.jpg) SoftwareUsed DateTime , ( ) + 1 . ( ) + 2 . , .
ExifLib / , .Net - .
.Net Image PropertyItems " " image.PropertyItems.Single(x => x.Id == tagMake).Value
: ExifLib , EXIF-, , . .NET Image, , , : -)