mono/MonoGame — pull request #2705 by tomspilman (2014-06-11 16:52:45+00:00)
Title: ContentTypeReader Caching

This is a fix for https://github.com/mono/MonoGame/issues/2687.

In this PR I established a static cache of `ContentTypeReader`s so that we don't continue to create and release them over and over on each call to `ContentManager.Load()`. This is not only a big reduction in garbage generation, but it also should slightly improve performance.

I also included a major refactor of `ReflectiveReader` which moves all the reflection and other guess work into initialization. This means reading the content does as little work possible which is a huge win on games that have lots of reflective types.

Also ran across a fix for `EnumWriter` which I included here.