HttpPostedFileBase's relationship to HttpPostedFileWrapper
I understand the relationship between HttpPostedFileBase and HttpPostedFileWrapper , in terms of the need for both of them (i.e. in unit testing/mocking). But why, when I put a breakpoint on the return for HttpPostedFileBase , does it show it as HttpPostedFileWrapper ? Furthermore, HttpPostedFileBase doesn't implement the ContentType property. So why does it return a value when my code only references HttpPostedFileBase , and not HttpPostedFileWrapper ? What kind of trickery is this? Edit #1: Thanks for the great reply @lawliet29. I have written out the structure as suggested. public sealed