I see what you are trying to do here, the only thing I am wondering is: is this a safe thing to do? Can we be sure that all cacheEntries returned from the `MethodInfoCacheGet` will always be of the same type? Wouldn't it be safer to do this dynamically when querying the cache later, in such a way that you keep track of this in a dictionary, keyed on the `Type` (and with the necessary locking around it)?

that way you are not depending on the type returned from this initialization code for future use?

What do you think?