Two things:

1) The JSON returned by GetMatchHistory is actually enclosed in some Envelope object, so deserialize to the envelope object, and return the Result property.
2) Investigate what's being deserialized from here (either by writing something in the program to output the MatchHistory object, or through the debugger), and you'll see a lot of properties are not being set.  This is because the Json serializer doesn't know to map the "match_id" field in the source json to the MatchId property on MatchSummary.  See: http://james.newtonking.com/projects/json/help/html/JsonPropertyName.htm