diff options
author | Filip Navara <filip.navara@gmail.com> | 2019-03-08 19:55:25 +0100 |
---|---|---|
committer | Dan Moseley <danmose@microsoft.com> | 2019-03-08 10:55:25 -0800 |
commit | d74fa42f811dbe28a8c12ae39122f8d110fbfa5c (patch) | |
tree | 394006cc61fee6865795fcabf92da995b6a68735 | |
parent | fbaff14510fb0c1844b30a3faaf9a2c8323f294b (diff) | |
download | coreclr-d74fa42f811dbe28a8c12ae39122f8d110fbfa5c.tar.gz coreclr-d74fa42f811dbe28a8c12ae39122f8d110fbfa5c.tar.bz2 coreclr-d74fa42f811dbe28a8c12ae39122f8d110fbfa5c.zip |
Allow deserialization for ResourceManager created with non-default resource set type (#23051)
-rw-r--r-- | src/System.Private.CoreLib/shared/System/Resources/ManifestBasedResourceGroveler.cs | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/System.Private.CoreLib/shared/System/Resources/ManifestBasedResourceGroveler.cs b/src/System.Private.CoreLib/shared/System/Resources/ManifestBasedResourceGroveler.cs index f2ef9dda1f..485417d52a 100644 --- a/src/System.Private.CoreLib/shared/System/Resources/ManifestBasedResourceGroveler.cs +++ b/src/System.Private.CoreLib/shared/System/Resources/ManifestBasedResourceGroveler.cs @@ -237,10 +237,23 @@ namespace System.Resources } else { - Type readerType = Type.GetType(readerTypeName, throwOnError: true); - object[] args = new object[1]; - args[0] = store; - IResourceReader reader = (IResourceReader)Activator.CreateInstance(readerType, args); + IResourceReader reader; + + // Permit deserialization as long as the default ResourceReader is used + if (ResourceManager.IsDefaultType(readerTypeName, ResourceManager.ResReaderTypeName)) + { + reader = new ResourceReader( + store, + new Dictionary<string, ResourceLocator>(FastResourceComparer.Default), + permitDeserialization: true); + } + else + { + Type readerType = Type.GetType(readerTypeName, throwOnError: true); + object[] args = new object[1]; + args[0] = store; + reader = (IResourceReader)Activator.CreateInstance(readerType, args); + } object[] resourceSetArgs = new object[1]; resourceSetArgs[0] = reader; |