ResourceWriter.AddResourceData(String, String, Byte[]) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将数据单元作为资源添加到要写入的资源的列表。
public:
void AddResourceData(System::String ^ name, System::String ^ typeName, cli::array <System::Byte> ^ serializedData);
public void AddResourceData (string name, string typeName, byte[] serializedData);
member this.AddResourceData : string * string * byte[] -> unit
Public Sub AddResourceData (name As String, typeName As String, serializedData As Byte())
参数
- name
- String
标识包含所添加数据的资源的名称。
- typeName
- String
添加的数据的类型名称。
- serializedData
- Byte[]
一个字节数组,该数组包含添加的数据的二进制表示形式。
例外
name
、typeName
或 serializedData
为 null
。
name
(或仅大小写不同的名称)已添加到此 ResourceWriter 对象。
未初始化当前的 ResourceWriter 对象。 原因可能是 ResourceWriter 对象已关闭。
示例
以下示例使用 AddResourceData 方法将两个整数值写入 .resources 文件,然后使用 ResourceReader 对象检索它们。
using System;
using System.Collections;
using System.Resources;
public class Example
{
public static void Main()
{
ResourceWriter rw = new ResourceWriter(@".\TypeResources.resources");
int n1 = 1032;
rw.AddResourceData("Integer1", "ResourceTypeCode.Int32", BitConverter.GetBytes(n1));
int n2 = 2064;
rw.AddResourceData("Integer2", "ResourceTypeCode.Int32", BitConverter.GetBytes(n2));
rw.Generate();
rw.Close();
ResourceReader rr = new ResourceReader(@".\TypeResources.resources");
IDictionaryEnumerator e = rr.GetEnumerator();
while (e.MoveNext())
Console.WriteLine("{0}: {1}", e.Key, e.Value);
}
}
// The example displays the following output:
// Integer2: 2064
// Integer1: 1032
Imports System.Collections
Imports System.Resources
Module Example
Public Sub Main()
Dim rw As New ResourceWriter(".\TypeResources.resources")
Dim n1 As Integer = 1032
rw.AddResourceData("Integer1", "ResourceTypeCode.Int32", BitConverter.GetBytes(n1))
Dim n2 As Integer = 2064
rw.AddResourceData("Integer2", "ResourceTypeCode.Int32", BitConverter.GetBytes(n2))
rw.Generate()
rw.Close()
Dim rr As New ResourceReader(".\TypeResources.resources")
Dim e As IDictionaryEnumerator = rr.GetEnumerator()
Do While e.MoveNext()
Console.WriteLine("{0}: {1}", e.Key, e.Value)
Loop
End Sub
End Module
' The example displays the following output:
' Integer2: 2064
' Integer1: 1032
注解
AddResourceData使用 方法以二进制形式添加资源 (即作为字节数组) 要写入的资源列表。 必须指定资源的名称、资源中包含的数据的类型名称以及数据本身的二进制表示形式。 添加所需的每个资源后,使用 Generate 方法将资源列表写入构造函数中指定的 ResourceWriter 资源文件或流。
typeName
是表示资源的数据类型的字符串。 可以是以下任一值:
枚举成员的
ResourceTypeCode
字符串表示形式,指示资源的数据类型。ResourceTypeCode
是Resgen.exe用来指示使用特殊二进制格式来存储 19 种常见数据类型之一的专用枚举。 其中包括.NET Framework基元数据类型, (Boolean、Byte、Char、 DoubleInt16Int32SingleUInt16SByteUInt64UInt32DecimalInt64) ,以及 String、 DateTime和 。TimeSpan 此外,ResourceTypeCode
枚举包括下表中显示的值。ResourceTypeCode
值说明 ResourceTypeCode.ByteArray
数据是字节数组。 ResourceTypeCode.Null
数据为 null 引用。 ResourceTypeCode.Stream
数据存储在流中。 一个字符串,包含类型的完全限定名称,其二进制数据分配给
serializedData
参数 (例如System.String
,) 。 此外,对于不属于 .NET Framework 类库的类型,字符串包括包含该类型的程序集的名称、版本、区域性和公钥。 例如,以下字符串指示序列化的数据表示命名空间中Extensions
类型的实例,该实例Person
位于名为 Utility 的程序集的 1.0 版中,该程序集没有公钥,也没有指定区域性。Extensions.Person, Utility, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
用于读取使用 AddResourceData 方法编写的资源数据的并行方法是 ResourceReader.GetResourceData。