a reflection cache for .net