Interesting. I wonder if it wouldn't make sense to either modify the extract value method, or probably better, overload it to support a version that included the size (i.e. add method ExtractValue(buffer, offset, size). Then this method would be available for all classes.
Are you happy for me to add this? I think it's better than me copying the relevant part of extract value into each class.