One simplified constructor for ArgsException + tests
Checking for InvalidArgumentFormat
Checking for InvalidArgumentName
Removing some JUnitisms
Dynamic dispatch for marshalers instead of if/else branching
Extracted common GetValue logic into extension menthod
Change in behaviour: if no argument is present return default value
Use of generics instead of casting + auto-property gives shorter syntax
DoubleArgumentMarshaler as simple as it gets
Test with no schema or args
Test: no schema, some arguments
enumerator.Next() shortcut
Not needed
One variable less, but had to moved checking
More functional approach (simpler):

 - less instance variables
 - more static methods (aka functions)
 - power of linq