ResXResourceSet Class


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Represents all resources in an XML resource (.resx) file.

Namespace:   System.Resources
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)


[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
[PermissionSetAttribute(SecurityAction.LinkDemand, Name = "FullTrust")]
public class ResXResourceSet : ResourceSet


Initializes a new instance of the ResXResourceSet class using the system default ResXResourceReader to read resources from the specified stream.


Initializes a new instance of a ResXResourceSet class using the system default ResXResourceReader that opens and reads resources from the specified file.


Closes and releases any resources used by this ResourceSet.(Inherited from ResourceSet.)


Disposes of the resources (other than memory) used by the current instance of ResourceSet.(Inherited from ResourceSet.)


Releases resources (other than memory) associated with the current instance, closing internal managed objects if requested.(Inherited from ResourceSet.)


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)


Returns the preferred resource reader class for this kind of ResXResourceSet.(Overrides ResourceSet.GetDefaultReader().)


Returns the preferred resource writer class for this kind of ResXResourceSet.(Overrides ResourceSet.GetDefaultWriter().)


Returns an IDictionaryEnumerator that can iterate through the ResourceSet.(Inherited from ResourceSet.)


Serves as the default hash function. (Inherited from Object.)


Searches for a resource object with the specified name.(Inherited from ResourceSet.)

System_CAPS_pubmethodGetObject(String, Boolean)

Searches for a resource object with the specified name in a case-insensitive manner, if requested.(Inherited from ResourceSet.)


Searches for a String resource with the specified name.(Inherited from ResourceSet.)

System_CAPS_pubmethodGetString(String, Boolean)

Searches for a String resource with the specified name in a case-insensitive manner, if requested.(Inherited from ResourceSet.)


Gets the Type of the current instance.(Inherited from Object.)


Creates a shallow copy of the current Object.(Inherited from Object.)


Reads all the resources and stores them in a Hashtable indicated in the Table property.(Inherited from ResourceSet.)


Returns a string that represents the current object.(Inherited from Object.)


Indicates the IResourceReader used to read the resources.(Inherited from ResourceSet.)


The Hashtable in which the resources are stored.(Inherited from ResourceSet.)


Returns an IEnumerator object to avoid a race condition with Dispose. This member is not intended to be used directly from your code.(Inherited from ResourceSet.)


Overloaded. Enables parallelization of a query.(Defined by ParallelEnumerable.)


Overloaded. Converts an IEnumerable to an IQueryable.(Defined by Queryable.)


Casts the elements of an IEnumerable to the specified type.(Defined by Enumerable.)


Filters the elements of an IEnumerable based on a specified type.(Defined by Enumerable.)

The ResXResourceSet class enumerates over an IResourceReader, loads every name and value, and stores them in a hash table. You can then enumerate the resources in the ResXResourceSet object or retrieve individual resources by name.


This class contains a SecurityAction.LinkDemand and an SecurityAction.InheritanceDemand at the class level that applies to all members. A SecurityException exception is thrown when the immediate caller or a derived class does not have full-trust permission.

A ResXResourceSet object provides a convenient way to read all the resources in a .resx file into memory. You can use the GetObject method to retrieve a particular resource when the .resx file has been read into a ResXResourceSet instance.

Notes to Inheritors:

Derived classes of ResXResourceSet that use their own resource reader and writer should override the GetDefaultReader and GetDefaultWriter methods to provide the appropriate functionality for interpreting the ResXResourceSet instance.

The following example instantiates a ResXResourceSet object and illustrates how to enumerate its resources and retrieve individual resources by name. For each resource that it enumerates, the example uses the IDictionaryEnumerator.Key property in a call to the GetString or GetObject method, depending on whether the value of the resource is a string or an object.

using System;
using System.Collections;
using System.Drawing;
using System.Resources;

public class Example
   public static void Main()

      ResXResourceSet resSet = new ResXResourceSet(@".\StoreResources.resx");
      IDictionaryEnumerator dict = resSet.GetEnumerator();
      while (dict.MoveNext()) {
         string key = (string) dict.Key;
         // Retrieve resource by name.
         if (dict.Value is string)
            Console.WriteLine("{0}: {1}", key, resSet.GetString(key));
            Console.WriteLine("{0}: {1}", key, resSet.GetObject(key));   

   private static void CreateResXFile()
      Bitmap logo = new Bitmap(@".\Logo.bmp");
      ResXDataNode node;

      ResXResourceWriter rw = new ResXResourceWriter(@".\StoreResources.resx");
      node = new ResXDataNode("Logo", logo);
      node.Comment = "The corporate logo.";
      rw.AddResource("AppTitle", "Store Locations");
      node = new ResXDataNode("nColumns", 5);
      node.Comment = "The number of columns in the Store Location table";
      rw.AddResource("City", "City");
      rw.AddResource("State", "State");
      rw.AddResource("Code", "Zip Code");
      rw.AddResource("Telephone", "Phone");
// The example displays the following output:
//       Telephone: Phone
//       Code: Zip Code
//       State: State
//       City: City
//       nColumns: 5
//       AppTitle: Store Locations
//       Logo: System.Drawing.Bitmap

The example calls a CreateResXFile method to create the necessary XML resource file. It requires a bitmap file named Logo.bmp in the directory in which the example is running.


for full trust for the immediate caller. This class cannot be used by partially trusted code.


for full trust for the immediate caller. This class cannot be inherited by partially trusted code.

.NET Framework
Available since 1.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top