ResourceWriter.AddResourceData(String, String, Byte[]) 方法

定义

将数据单元作为资源添加到要写入的资源的列表。

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[]

一个字节数组,该数组包含添加的数据的二进制表示形式。

例外

nametypeNameserializedDatanull

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基元数据类型, (BooleanByteCharDoubleInt16Int32SingleUInt16SByteUInt64UInt32DecimalInt64) ,以及 StringDateTime和 。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

适用于

另请参阅