ResXResourceWriter 类

定义

将资源写入 XML 资源 (.resx) 文件或输出流。

C#
public class ResXResourceWriter : System.Resources.IResourceWriter
C#
public class ResXResourceWriter : IDisposable, System.Resources.IResourceWriter
继承
ResXResourceWriter
实现

示例

以下示例创建一个名为 的 CarResources.resx .resx 文件,该文件存储六个字符串、一个图标和两个应用程序定义的对象, (两 Automobile 个对象) 。 请注意,本示例中定义并实例化的 Automobile 类使用 SerializableAttribute 属性进行标记。

C#
using System;
using System.Drawing;
using System.Resources;

[Serializable()] public class Automobile
{
   private string carMake;
   private string carModel;
   private int carYear;
   private int carDoors;
   private int carCylinders;

   public Automobile(string make, string model, int year) :
                     this(make, model, year, 0, 0)
   { }

   public Automobile(string make, string model, int year,
                     int doors, int cylinders)
   {
      this.carMake = make;
      this.carModel = model;
      this.carYear = year;
      this.carDoors = doors;
      this.carCylinders = cylinders;
   }

   public string Make {
      get { return this.carMake; }
   }

   public string Model {
      get {return this.carModel; }
   }

   public int Year {
      get { return this.carYear; }
   }

   public int Doors {
      get { return this.carDoors; }
   }

   public int Cylinders {
      get { return this.carCylinders; }
   }
}

public class Example
{
   public static void Main()
   {
      // Instantiate an Automobile object.
      Automobile car1 = new Automobile("Ford", "Model N", 1906, 0, 4);
      Automobile car2 = new Automobile("Ford", "Model T", 1909, 2, 4);
      // Define a resource file named CarResources.resx.
      using (ResXResourceWriter resx = new ResXResourceWriter(@".\CarResources.resx"))
      {
         resx.AddResource("Title", "Classic American Cars");
         resx.AddResource("HeaderString1", "Make");
         resx.AddResource("HeaderString2", "Model");
         resx.AddResource("HeaderString3", "Year");
         resx.AddResource("HeaderString4", "Doors");
         resx.AddResource("HeaderString5", "Cylinders");
         resx.AddResource("Information", SystemIcons.Information);
         resx.AddResource("EarlyAuto1", car1);
         resx.AddResource("EarlyAuto2", car2);
      }
   }
}

注解

ResXResourceWriter XML 格式写入资源。 若要写入二进制资源文件,请使用 ResourceWriter

使用 AddResource 方法将资源指定为名称/值对。 资源名称在用于查找时区分大小写;但为了更轻松地支持创作工具并帮助消除 bug, ResXResourceWriter 不允许 a.resx 文件的名称仅因大小写而异。

若要创建.resx 文件,请创建 ResXResourceWriter 具有唯一文件名的 ,至少调用 AddResource 一次,调用 Generate 以将资源文件写入磁盘,然后调用 Close 以关闭文件。 如果需要,调用 Close 将隐式 Generate 调用 文件。

资源的写入顺序不一定与添加的顺序相同。

有关 a.resx 文件格式的详细信息,请参阅 以编程方式使用 .resx 文件

备注

此类包含应用于所有成员的类级别的链接需求和继承需求。 SecurityException当直接调用方或派生类没有完全信任权限时,将引发 。

构造函数

ResXResourceWriter(Stream)

初始化 ResXResourceWriter 类的新实例,它将资源写入到指定的流对象中。

ResXResourceWriter(Stream, Func<Type,String>)

初始化 ResXResourceWriter 类的新实例,它将资源写入指定的流对象并设置转换器委托。 通过此委托,可以使用限定的程序集名称以面向 .NET Framework 4 之前的 .NET Framework 版本编写资源程序集。

ResXResourceWriter(String)

初始化 ResXResourceWriter 类的新实例,它将资源写入到指定文件中。

ResXResourceWriter(String, Func<Type,String>)

初始化 ResXResourceWriter 类的新实例,它将资源写入指定的文件并设置一个委托,通过该委托可以使用限定的程序集名称以面向 .NET Framework 4 之前的 .NET Framework 版本编写资源程序集。

ResXResourceWriter(TextWriter)

初始化 ResXResourceWriter 类的新实例,它写入到指定的 TextWriter 对象中。

ResXResourceWriter(TextWriter, Func<Type,String>)

初始化 ResXResourceWriter 类的新实例,它将资源写入指定的 TextWriter 对象并设置一个委托,通过该委托可以使用限定的程序集名称以面向 .NET Framework 4 之前的 .NET Framework 版本编写资源程序集。

字段

BinSerializedObjectMimeType

指定二进制对象的默认内容类型。 此字段为只读。

ByteArraySerializedObjectMimeType

指定字节数组对象的默认内容类型。 此字段为只读。

DefaultSerializedObjectMimeType

指定对象的默认内容类型。 此字段为只读。

ResMimeType

指定 XML 资源的内容类型。 此字段为只读。

ResourceSchema

指定写入 XML 文件时使用的架构。 此字段为只读。

SoapSerializedObjectMimeType

指定 SOAP 对象的内容类型。 此字段为只读。

Version

指定 XML 输出所符合的架构的版本。 此字段为只读。

属性

BasePath

获取或设置在 ResXFileRef 对象中指定的相对文件路径的基路径。

方法

AddAlias(String, AssemblyName)

将指定别名添加到别名列表中。

AddMetadata(String, Byte[])

向要写入的资源的列表中添加值指定为字节数组的设计时属性。

AddMetadata(String, Object)

向要写入的资源的列表中添加值指定为对象的设计时属性。

AddMetadata(String, String)

向要写入的资源的列表中添加值指定为字符串的设计时属性。

AddResource(ResXDataNode)

ResXDataNode 对象中指定的已命名资源添加到要写入的资源列表中。

AddResource(String, Byte[])

将指定为字节数组的已命名资源添加到要写入的资源列表中。

AddResource(String, Object)

将指定为对象的已命名资源添加到要写入的资源列表中。

AddResource(String, String)

向资源添加字符串资源。

Close()

释放由 ResXResourceWriter 使用的所有资源。

Dispose()

释放由 ResXResourceWriter 使用的所有资源。

Dispose(Boolean)

释放由 ResXResourceWriter 占用的非托管资源,还可以另外再释放托管资源。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
Finalize()

此成员重写 Finalize() 方法。

Generate()

将所有由 AddResource(String, Byte[]) 方法添加的资源均写入到输出文件或流中。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于

产品 版本
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

另请参阅