ResXResourceWriter 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
寫入資源至 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) |