ResXResourceWriter 类

定义

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

public ref class ResXResourceWriter : System::Resources::IResourceWriter
public ref class ResXResourceWriter : IDisposable, System::Resources::IResourceWriter
public class ResXResourceWriter : System.Resources.IResourceWriter
public class ResXResourceWriter : IDisposable, System.Resources.IResourceWriter
type ResXResourceWriter = class
    interface IResourceWriter
    interface IDisposable
Public Class ResXResourceWriter
Implements IResourceWriter
Public Class ResXResourceWriter
Implements IDisposable, IResourceWriter
继承
ResXResourceWriter
实现

示例

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

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);
      }
   }
}
Imports System.Drawing
Imports System.Resources

<Serializable()> Public Class Automobile
   Private carMake As String
   Private carModel As String
   Private carYear As Integer
   Private carDoors AS Integer
   Private carCylinders As Integer
   
   Public Sub New(make As String, model As String, year As Integer) 
      Me.New(make, model, year, 0, 0)   
   End Sub
   
   Public Sub New(make As String, model As String, year As Integer, 
                  doors As Integer, cylinders As Integer)
      Me.carMake = make
      Me.carModel = model
      Me.carYear = year
      Me.carDoors = doors
      Me.carCylinders = cylinders
   End Sub

   Public ReadOnly Property Make As String
      Get
         Return Me.carMake
      End Get   
   End Property       
   
   Public ReadOnly Property Model As String
      Get
         Return Me.carModel
      End Get   
   End Property       
   
   Public ReadOnly Property Year As Integer
      Get
         Return Me.carYear
      End Get   
   End Property       
   
   Public ReadOnly Property Doors As Integer
      Get
         Return Me.carDoors
      End Get   
   End Property       
   
   Public ReadOnly Property Cylinders As Integer
      Get
         Return Me.carCylinders
      End Get   
   End Property       
End Class

Module Example
   Public Sub Main()
      ' Instantiate an Automobile object.
      Dim car1 As New Automobile("Ford", "Model N", 1906, 0, 4)
      Dim car2 As New Automobile("Ford", "Model T", 1909, 2, 4)
      ' Define a resource file named CarResources.resx.
      Using resx As 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)  
      End Using
   End Sub
End Module

注解

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

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

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

资源不一定按添加的顺序编写。

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

注释

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

构造函数

名称 说明
ResXResourceWriter(Stream, Func<Type,String>)

初始化将资源写入指定流对象并设置转换器委托的 ResXResourceWriter 类的新实例。 此委托使资源程序集能够使用限定的程序集名称在 .NET Framework 4 之前编写.NET框架的目标版本。

ResXResourceWriter(Stream)

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

ResXResourceWriter(String, Func<Type,String>)

初始化 ResXResourceWriter 类的新实例,该类将资源写入指定文件,并设置一个委托,该委托使资源程序集能够在.NET Framework 4 之前使用限定的程序集名称在 .NET Framework 4 之前编写该目标版本的.NET框架。

ResXResourceWriter(String)

初始化将资源写入指定文件类的新实例 ResXResourceWriter

ResXResourceWriter(TextWriter, Func<Type,String>)

初始化 ResXResourceWriter 类的新实例,该类将资源写入指定的 TextWriter 对象,并设置一个委托,该委托使资源程序集能够在使用限定的程序集名称.NET Framework 4 之前编写该目标版本的 .NET Framework。

ResXResourceWriter(TextWriter)

初始化写入指定ResXResourceWriter对象的类的新实例TextWriter

字段

名称 说明
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)

适用于

另请参阅