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 文件

备注

此类包含应用于所有成员的类级别的链接需求和继承需求。 当即时调用方或派生类没有完全信任权限时,将引发 A 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)

适用于

另请参阅