Add System.Resources.Extensions (dotnet/corefx#36906)
* Add System.Resources.Binary.Reader|Writer
* Fix ResourceWriter tests
* Test fixes and PR feedback
* More test fixes
* Add packages for System.Resources.Binary.*
* Suppress duplicate types in System.Resources.Binary.*
* Test refactoring and adding RuntimeResourceSet
It turns out me must have our own ResourceSet since the CoreLib resource set doesn't
expose a constructor that takes an IResourceReader.
I've shared the code since it does a bit of non-trivial caching.
* Don't use auto-property initializers for platfrom sensitive test data
For some reason I thought these lazy-initialized the properties but they don't.
As a result we were hitting the platform sensitive code even when we never
called the getter. Switch to an expression instead.
* Only use Drawing converters on Windows
* Fix test failures
* Don't leak System.Private.CoreLib into resources
* Make sure RuntimeResourceSet doesn't call ResourceReader(IResourceReader)
* WIP
* Rename types in System.Resources.Extensions
Leave RuntimeResourceSet internal as it doesn't need to be public.
* Update packages
* Respond to API review feedback
Remove abstraction for ResourceReader/Writer: just reuse the source.
Remove non-essential members.
* Clean up
* Further cleanup
* Further cleanup
* Review feedback
* Ensure we have stable type names in Resources.Extensions
We don't want to use the runtime type identity when doing type checks or writing
types as this may change. Instead, check-in hard-coded strings that match the
type identity.
Add a test case to ensure the resources we generate match what we
test the reader against in the resource manager case (also to track any
change to the binary format).
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>