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。