Поделиться через


ResourceWriter.AddResource Метод

Определение

Добавляет ресурс в список ресурсов для записи.

Перегрузки

AddResource(String, Byte[])

Добавляет именованный ресурс, заданный в виде массива байтов, в список ресурсов для записи.

AddResource(String, Stream)

Добавляет именованный ресурс, заданный в виде потока, в список ресурсов для записи.

AddResource(String, Object)

Добавляет именованный ресурс, заданный в виде объекта, в список ресурсов для записи.

AddResource(String, String)

Добавляет строковый ресурс в список ресурсов для записи.

AddResource(String, Stream, Boolean)

Добавляет именованный ресурс, заданный как поток, в список ресурсов для записи и указывает, следует ли закрыть поток после вызова метода Generate().

AddResource(String, Byte[])

Исходный код:
ResourceWriter.cs
Исходный код:
ResourceWriter.cs
Исходный код:
ResourceWriter.cs

Добавляет именованный ресурс, заданный в виде массива байтов, в список ресурсов для записи.

public:
 virtual void AddResource(System::String ^ name, cli::array <System::Byte> ^ value);
public void AddResource (string name, byte[]? value);
public void AddResource (string name, byte[] value);
abstract member AddResource : string * byte[] -> unit
override this.AddResource : string * byte[] -> unit
Public Sub AddResource (name As String, value As Byte())

Параметры

name
String

Имя ресурса.

value
Byte[]

Значение ресурса в виде массива 8-разрядных целых чисел без знака.

Реализации

Исключения

Объект name (или имя, которое отличается лишь регистром знаков) уже был добавлен в этот объект ResourceWriter.

Параметр name имеет значение null.

Этот объект ResourceWriter уже был закрыт и его хеш-таблица недоступна.

Примеры

В следующем примере метод используется AddResource(String, Byte[]) для добавления графического изображения, считанного в виде массива байтов, ResourceWriter в объект .

using System;
using System.IO;
using System.Resources;

public class Example
{
   public static void Main()
   {
      // Get the image as an array of bytes.
      FileStream byteStream = new FileStream("AppIcon.jpg", FileMode.Open);
      Byte[] bytes = new Byte[(int) byteStream.Length];
      byteStream.Read(bytes, 0, (int) byteStream.Length);
      
      // Create the resource file.
      using (ResourceWriter rw = new ResourceWriter(@".\UIImages.resources")) {
         rw.AddResource("AppIcon", byteStream);
         // Add any other resources.
      }
   }
}
Imports System.IO
Imports System.Resources

Module Example
   Public Sub Main()                      
      ' Get the image as an array of bytes.
      Dim byteStream As New FileStream("AppIcon.jpg", Filemode.Open)
      Dim bytes(CInt(byteStream.Length - 1)) As Byte
      byteStream.Read(bytes, 0, CInt(byteStream.Length))
      
      ' Create the resource file.
      Using rw As New ResourceWriter(".\UIImages.resources")
         rw.AddResource("AppIcon", byteStream)
         ' Add any other resources.
      End Using
   End Sub
End Module

Комментарии

Ресурс не записывается до вызова Generate .

Ресурсы, записанные методом , AddResource(String, Byte[]) можно получить, вызвав ResourceManager.GetStream метод .

См. также раздел

Применяется к

AddResource(String, Stream)

Исходный код:
ResourceWriter.core.cs
Исходный код:
ResourceWriter.core.cs
Исходный код:
ResourceWriter.core.cs

Добавляет именованный ресурс, заданный в виде потока, в список ресурсов для записи.

public:
 void AddResource(System::String ^ name, System::IO::Stream ^ value);
public void AddResource (string name, System.IO.Stream? value);
public void AddResource (string name, System.IO.Stream value);
member this.AddResource : string * System.IO.Stream -> unit
Public Sub AddResource (name As String, value As Stream)

Параметры

name
String

Имя добавляемого ресурса.

value
Stream

Значение добавляемого ресурса. Ресурс должен поддерживать свойство Length.

Исключения

Объект name (или имя, которое отличается лишь регистром знаков) уже был добавлен в этот объект ResourceWriter.

-или-

Поток не поддерживает свойство Length.

Параметр name или value имеет значение null.

Данный объект ResourceWriter был закрыт.

Примеры

В следующем примере метод используется AddResource(String, Stream) для добавления графического изображения, сохраненного в MemoryStream объекте ResourceWriter .

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Resources;

public class Example
{
   public static void Main()
   {
      // Bitmap as stream
      MemoryStream bitmapStream = new MemoryStream();
      Bitmap bmp = new Bitmap(@".\\AppImage.jpg");
      bmp.Save(bitmapStream, ImageFormat.Jpeg);
          
      using (ResourceWriter rw = new ResourceWriter(@".\UIImages.resources"))
      {
         rw.AddResource("Bitmap", bitmapStream);
         // Add other resources.
      }
   }
}
Imports System.Drawing
Imports System.IO
Imports System.Resources

Module Example
   Public Sub Main()
      ' Bitmap as stream
      Dim bitmapStream As New MemoryStream()
      Dim bmp As New Bitmap(".\\AppImage.jpg")
      bmp.Save(bitmapStream, Imaging.ImageFormat.Jpeg)
          
      Using rw As New ResourceWriter(".\UIImages.resources")
         rw.AddResource("Bitmap", bitmapStream)
         ' Add other resources.
      End Using
   End Sub
End Module

Комментарии

Для можно указать любой поток, поддерживающий Stream.Length свойство value.

Ресурсы, записанные методом , AddResource(String, Stream) можно получить, вызвав ResourceManager.GetStream метод .

См. также раздел

Применяется к

AddResource(String, Object)

Исходный код:
ResourceWriter.cs
Исходный код:
ResourceWriter.cs
Исходный код:
ResourceWriter.cs

Добавляет именованный ресурс, заданный в виде объекта, в список ресурсов для записи.

public:
 virtual void AddResource(System::String ^ name, System::Object ^ value);
public void AddResource (string name, object? value);
public void AddResource (string name, object value);
abstract member AddResource : string * obj -> unit
override this.AddResource : string * obj -> unit
Public Sub AddResource (name As String, value As Object)

Параметры

name
String

Имя ресурса.

value
Object

Значение ресурса.

Реализации

Исключения

Объект name (или имя, которое отличается лишь регистром знаков) уже был добавлен в этот объект ResourceWriter.

Параметр name имеет значение null.

Этот объект ResourceWriter уже был закрыт и его хеш-таблица недоступна.

Примеры

В следующем примере метод используется AddResource(String, Object) для добавления данных объекта в файл двоичных ресурсов.

using System;
using System.Resources;

public class Example
{
   public static void Main()
   {
      DonorColumns columns = new DonorColumns("Emplyee #", "Name", 
                                              "Total Amount", "Last Donation Date",
                                              "Last Donation Amount");
      ResourceWriter resFile = new ResourceWriter(@".\UIResources.resources");
      resFile.AddResource("Title", "Corporate Gold Star Donors");
      resFile.AddResource("NColumns", 5);
      resFile.AddResource("AppDate", new DateTime(2011, 5, 28));
      resFile.AddResource("AppVersion", new Version(1, 0, 217));
      resFile.AddResource("HRVersion", true);
      resFile.Generate();
      resFile.Close();               
   }
}

// Class to hold potentially localized column names.
[Serializable] public class DonorColumns
{
   readonly string ID;
   readonly string Name;
   readonly string Total;
   readonly string Last;
   readonly string Amt;

   public DonorColumns(string id, string name, string total, 
                  string last, string amt)
   {                  
      this.ID = id;
      this.Name = name;
      this.Total = total;
      this.Last = last;
      this.Amt = amt;                        
   }   
}

DonorColumns — это пользовательский класс, поля которого содержат имена столбцов, отображаемых в пользовательском интерфейсе. Обратите внимание, что класс помечен атрибутом SerializableAttribute . Как правило, класс определяется в отдельной сборке, и ссылка на него будет предоставляться компилятору во время компиляции.

Комментарии

value должен быть сериализуемым.

Ресурс не записывается до Generate вызова метода .

Ресурсы, записанные методом , AddResource(String, Object) можно получить, вызвав ResourceManager.GetObject метод .

См. также раздел

Применяется к

AddResource(String, String)

Исходный код:
ResourceWriter.cs
Исходный код:
ResourceWriter.cs
Исходный код:
ResourceWriter.cs

Добавляет строковый ресурс в список ресурсов для записи.

public:
 virtual void AddResource(System::String ^ name, System::String ^ value);
public:
 void AddResource(System::String ^ name, System::String ^ value);
public void AddResource (string name, string? value);
public void AddResource (string name, string value);
abstract member AddResource : string * string -> unit
override this.AddResource : string * string -> unit
member this.AddResource : string * string -> unit
Public Sub AddResource (name As String, value As String)

Параметры

name
String

Имя ресурса.

value
String

Значение ресурса.

Реализации

Исключения

Объект name (или имя, которое отличается лишь регистром знаков) уже добавлен в этот объект ResourceWriter.

Параметр name имеет значение null.

Этот объект ResourceWriter уже был закрыт и его хеш-таблица недоступна.

Примеры

В следующем примере метод используется AddResource для добавления строковых ресурсов в ResourceWriter объект .

using namespace System;
using namespace System::Resources;
using namespace System::IO;
int main()
{
   
   // Create a file stream to encapsulate items.resources.
   FileStream^ fs = gcnew FileStream( "items.resources",FileMode::OpenOrCreate,FileAccess::Write );
   
   // Open a resource writer to write from the stream.
   IResourceWriter^ writer = gcnew ResourceWriter( fs );
   
   // Add resources to the resource writer.
   writer->AddResource( "String 1", "First String" );
   writer->AddResource( "String 2", "Second String" );
   writer->AddResource( "String 3", "Third String" );
   
   // Write the resources to the stream, and close it.
   writer->Close();
}
using System;
using System.Resources;
using System.IO;

public class WriteResources 
{
    public static void Main(string[] args) 
    {  
        // Create a file stream to encapsulate items.resources.
        FileStream fs = new FileStream("items.resources", 
        FileMode.OpenOrCreate,FileAccess.Write);

        // Open a resource writer to write from the stream.
        IResourceWriter writer = new ResourceWriter(fs);
    
        // Add resources to the resource writer.
        writer.AddResource("String 1", "First String");
        writer.AddResource("String 2", "Second String");
        writer.AddResource("String 3", "Third String");

        // Write the resources to the stream, and close it.
        writer.Close();
    }
}
Imports System.Resources
Imports System.IO

Public Class WriteResources
   
    Public Shared Sub Main(args() As String)
        ' Create a file stream to encapsulate items.resources.
        Dim fs As New FileStream("items.resources", _
           FileMode.OpenOrCreate, FileAccess.Write)
      
        ' Open a resource writer to write from the stream.
        Dim writer = New ResourceWriter(fs)
      
        ' Add resources to the resource writer.
        writer.AddResource("String 1", "First String")
        writer.AddResource("String 2", "Second String")
        writer.AddResource("String 3", "Third String")
      
        ' Write the resources to the stream, and close it.
        writer.Close()
    End Sub

End Class

Комментарии

Ресурс не записывается до вызова Generate .

Ресурсы, записанные методом , AddResource(String, String) можно получить, вызвав ResourceManager.GetString метод .

См. также раздел

Применяется к

AddResource(String, Stream, Boolean)

Исходный код:
ResourceWriter.cs
Исходный код:
ResourceWriter.cs
Исходный код:
ResourceWriter.cs

Добавляет именованный ресурс, заданный как поток, в список ресурсов для записи и указывает, следует ли закрыть поток после вызова метода Generate().

public:
 void AddResource(System::String ^ name, System::IO::Stream ^ value, bool closeAfterWrite);
public void AddResource (string name, System.IO.Stream? value, bool closeAfterWrite = false);
public void AddResource (string name, System.IO.Stream value, bool closeAfterWrite);
member this.AddResource : string * System.IO.Stream * bool -> unit
Public Sub AddResource (name As String, value As Stream, Optional closeAfterWrite As Boolean = false)
Public Sub AddResource (name As String, value As Stream, closeAfterWrite As Boolean)

Параметры

name
String

Имя добавляемого ресурса.

value
Stream

Значение добавляемого ресурса. Ресурс должен поддерживать свойство Length.

closeAfterWrite
Boolean

Значение true, чтобы закрыть поток после вызова метода Generate(); в противном случае — значение false.

Исключения

Объект name (или имя, которое отличается лишь регистром знаков) уже был добавлен в этот объект ResourceWriter.

-или-

Поток не поддерживает свойство Length.

Параметр name или value имеет значение null.

Данный объект ResourceWriter был закрыт.

Примеры

В следующем примере метод используется AddResource(String, Stream, Boolean) для добавления графического изображения, сохраненного в MemoryStream объекте ResourceWriter .

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Resources;

public class Example
{
   public static void Main()
   {
      // Bitmap as stream
      MemoryStream bitmapStream = new MemoryStream();
      Bitmap bmp = new Bitmap(@".\\AppImage.jpg");
      bmp.Save(bitmapStream, ImageFormat.Jpeg);
          
      ResourceWriter rw = new ResourceWriter(@".\UIImages.resources");
      rw.AddResource("Bitmap", bitmapStream, true);
      // Add other resources.
      rw.Generate();
   }
}
Imports System.Drawing
Imports System.IO
Imports System.Resources

Module Example
   Public Sub Main()
      ' Bitmap as stream
      Dim bitmapStream As New MemoryStream()
      Dim bmp As New Bitmap(".\\AppImage.jpg")
      bmp.Save(bitmapStream, Imaging.ImageFormat.Jpeg)
          
      Dim rw As New ResourceWriter(".\UIImages.resources")
      rw.AddResource("Bitmap", bitmapStream, True)
      ' Add other resources.
      rw.Generate()
   End Sub
End Module

Комментарии

Для можно указать любой поток, поддерживающий Stream.Length свойство value.

Ресурсы, записанные методом , AddResource(String, Stream, Boolean) можно получить, вызвав ResourceManager.GetStream метод .

См. также раздел

Применяется к