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
實作

範例

下列範例會建立名為 CarResources.resx 的 .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 一次、呼叫 將資源檔寫入磁片,然後呼叫 GenerateClose 以關閉檔案。 如有需要,呼叫 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 輸出確認的結構描述 (Schema) 版本。 此欄位為唯讀。

屬性

BasePath

取得或設定 ResXFileRef 物件中指定之相對檔案路徑的基底路徑。

方法

AddAlias(String, AssemblyName)

將指定的別名 (Alias) 加入別名清單。

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 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Finalize()

這個成員會覆寫 Finalize() 方法。

Generate()

寫入所有由 AddResource(String, Byte[]) 方法加入的資源至輸出檔或資料流。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於

另請參閱