summaryrefslogtreecommitdiff
path: root/src/mscorlib/src/System/Resources/ResourceSet.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/mscorlib/src/System/Resources/ResourceSet.cs')
-rw-r--r--src/mscorlib/src/System/Resources/ResourceSet.cs84
1 files changed, 14 insertions, 70 deletions
diff --git a/src/mscorlib/src/System/Resources/ResourceSet.cs b/src/mscorlib/src/System/Resources/ResourceSet.cs
index 8775f6411a..b4029a7e9c 100644
--- a/src/mscorlib/src/System/Resources/ResourceSet.cs
+++ b/src/mscorlib/src/System/Resources/ResourceSet.cs
@@ -13,25 +13,25 @@
**
===========================================================*/
+using System;
+using System.Collections;
+using System.IO;
+using System.Globalization;
+using System.Runtime.InteropServices;
+using System.Reflection;
+using System.Runtime.Serialization;
+using System.Runtime.Versioning;
+using System.Diagnostics.Contracts;
+using System.Collections.Generic;
+
namespace System.Resources
{
- using System;
- using System.Collections;
- using System.IO;
- using System.Globalization;
- using System.Runtime.InteropServices;
- using System.Reflection;
- using System.Runtime.Serialization;
- using System.Runtime.Versioning;
- using System.Diagnostics.Contracts;
-
// A ResourceSet stores all the resources defined in one particular CultureInfo.
//
// The method used to load resources is straightforward - this class
// enumerates over an IResourceReader, loading every name and value, and
// stores them in a hash table. Custom IResourceReaders can be used.
- //
- [Serializable]
+ //
public class ResourceSet : IDisposable, IEnumerable
{
[NonSerialized] protected IResourceReader Reader;
@@ -39,11 +39,6 @@ namespace System.Resources
private Hashtable _caseInsensitiveTable; // For case-insensitive lookups.
-#if LOOSELY_LINKED_RESOURCE_REFERENCE
- [OptionalField]
- private Assembly _assembly; // For LooselyLinkedResourceReferences
-#endif // LOOSELY_LINKED_RESOURCE_REFERENCE
-
protected ResourceSet()
{
// To not inconvenience people subclassing us, we should allocate a new
@@ -68,16 +63,6 @@ namespace System.Resources
ReadResources();
}
-#if LOOSELY_LINKED_RESOURCE_REFERENCE
- public ResourceSet(String fileName, Assembly assembly)
- {
- Reader = new ResourceReader(fileName);
- CommonInit();
- _assembly = assembly;
- ReadResources();
- }
-#endif // LOOSELY_LINKED_RESOURCE_REFERENCE
-
// Creates a ResourceSet using the system default ResourceReader
// implementation. Use this constructor to read from an open stream
// of data.
@@ -89,16 +74,6 @@ namespace System.Resources
ReadResources();
}
-#if LOOSELY_LINKED_RESOURCE_REFERENCE
- public ResourceSet(Stream stream, Assembly assembly)
- {
- Reader = new ResourceReader(stream);
- CommonInit();
- _assembly = assembly;
- ReadResources();
- }
-#endif // LOOSELY_LINKED_RESOURCE_REFERENCE
-
public ResourceSet(IResourceReader reader)
{
if (reader == null)
@@ -109,19 +84,6 @@ namespace System.Resources
ReadResources();
}
-#if LOOSELY_LINKED_RESOURCE_REFERENCE
- public ResourceSet(IResourceReader reader, Assembly assembly)
- {
- if (reader == null)
- throw new ArgumentNullException(nameof(reader));
- Contract.EndContractBlock();
- Reader = reader;
- CommonInit();
- _assembly = assembly;
- ReadResources();
- }
-#endif // LOOSELY_LINKED_RESOURCE_REFERENCE
-
private void CommonInit()
{
Table = new Hashtable();
@@ -156,15 +118,6 @@ namespace System.Resources
Dispose(true);
}
-#if LOOSELY_LINKED_RESOURCE_REFERENCE
- // Optional - used for resolving assembly manifest resource references.
- // This can safely be null.
- public Assembly Assembly {
- get { return _assembly; }
- /*protected*/ set { _assembly = value; }
- }
-#endif // LOOSELY_LINKED_RESOURCE_REFERENCE
-
// Returns the preferred IResourceReader class for this kind of ResourceSet.
// Subclasses of ResourceSet using their own Readers &; should override
// GetDefaultReader and GetDefaultWriter.
@@ -178,7 +131,8 @@ namespace System.Resources
// GetDefaultReader and GetDefaultWriter.
public virtual Type GetDefaultWriter()
{
- return Type.GetType("System.Resources.ResourceWriter, System.Resources.Writer, Version=4.0.1.0, Culture=neutral, PublicKeyToken=" + AssemblyRef.MicrosoftPublicKeyToken, throwOnError: true);
+ Assembly resourceWriterAssembly = Assembly.Load("System.Resources.Writer, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
+ return resourceWriterAssembly.GetType("System.Resources.ResourceWriter", true);
}
public virtual IDictionaryEnumerator GetEnumerator()
@@ -271,12 +225,6 @@ namespace System.Resources
while (en.MoveNext())
{
Object value = en.Value;
-#if LOOSELY_LINKED_RESOURCE_REFERENCE
- if (Assembly != null && value is LooselyLinkedResourceReference) {
- LooselyLinkedResourceReference assRef = (LooselyLinkedResourceReference) value;
- value = assRef.Resolve(Assembly);
- }
-#endif //LOOSELYLINKEDRESOURCEREFERENCE
Table.Add(en.Key, value);
}
// While technically possible to close the Reader here, don't close it
@@ -308,10 +256,6 @@ namespace System.Resources
if (caseTable == null)
{
caseTable = new Hashtable(StringComparer.OrdinalIgnoreCase);
-#if _DEBUG
- //Console.WriteLine("ResourceSet::GetObject loading up case-insensitive data");
- BCLDebug.Perf(false, "Using case-insensitive lookups is bad perf-wise. Consider capitalizing " + name + " correctly in your source");
-#endif
IDictionaryEnumerator en = copyOfTable.GetEnumerator();
while (en.MoveNext())