ResourceManager.GetStream Método

Definición

Devuelve un objeto de secuencia de memoria no administrada de un recurso especificado.

Sobrecargas

GetStream(String)

Devuelve un objeto de secuencia de memoria no administrada del recurso especificado.

GetStream(String, CultureInfo)

Devuelve un objeto de secuencia de memoria no administrada a partir del recurso especificado, usando la referencia cultural especificada.

GetStream(String)

Importante

Esta API no es conforme a CLS.

Devuelve un objeto de secuencia de memoria no administrada del recurso especificado.

public:
 System::IO::UnmanagedMemoryStream ^ GetStream(System::String ^ name);
public System.IO.UnmanagedMemoryStream? GetStream (string name);
public System.IO.UnmanagedMemoryStream GetStream (string name);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public System.IO.UnmanagedMemoryStream GetStream (string name);
[System.Runtime.InteropServices.ComVisible(false)]
public System.IO.UnmanagedMemoryStream GetStream (string name);
member this.GetStream : string -> System.IO.UnmanagedMemoryStream
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.GetStream : string -> System.IO.UnmanagedMemoryStream
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.GetStream : string -> System.IO.UnmanagedMemoryStream
Public Function GetStream (name As String) As UnmanagedMemoryStream

Parámetros

name
String

Nombre de un recurso.

Devoluciones

UnmanagedMemoryStream

Objeto de secuencia de memoria no administrada que representa un recurso.

Atributos

Excepciones

El valor del recurso especificado no es un objeto MemoryStream.

name es null.

No se han encontrado conjuntos de recursos que se puedan utilizar y no hay recursos predeterminados. Para obtener información sobre cómo administrar esta excepción, vea la sección "Administrar las excepciones MissingManifestResourceException y MissingSatelliteAssemblyException" en el tema de la clase ResourceManager.

Los recursos de la referencia cultural predeterminada residen en un ensamblado satélite que no se encuentra. Para obtener información sobre cómo administrar esta excepción, vea la sección "Administrar las excepciones MissingManifestResourceException y MissingSatelliteAssemblyException" en el tema de la clase ResourceManager.

Ejemplos

En el ejemplo siguiente se usa el método GetStream(String) para recuperar un mapa de bits que se emplea en la ventana de inicio de una aplicación. El siguiente código fuente de un archivo denominado CreateResources.cs (para C#) o CreateResources.vb (para Visual Basic) genera un archivo .resx denominado AppResources.resx que contiene la imagen serializada. En este caso, la imagen se carga desde un archivo denominado SplashScreen.jpg; puede modificar el nombre del archivo para sustituir su propia imagen.

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

public class Example
{
   public static void Main()
   {
      Bitmap bmp = new Bitmap(@".\SplashScreen.jpg");
      MemoryStream imageStream = new MemoryStream();
      bmp.Save(imageStream, ImageFormat.Jpeg);

      ResXResourceWriter writer = new ResXResourceWriter("AppResources.resx");
      writer.AddResource("SplashScreen", imageStream);
      writer.Generate();
      writer.Close();
   }
}
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.IO
Imports System.Resources

Module Example
   Public Sub Main()
      Dim bmp As New Bitmap(".\SplashScreen.jpg")
      Dim imageStream As New MemoryStream()
      bmp.Save(imageStream, ImageFormat.Jpeg)
      
      Dim writer As New ResXResourceWriter("AppResources.resx")
      writer.AddResource("SplashScreen", imageStream)
      writer.Generate()
      writer.Close()      
   End Sub
End Module

El código siguiente de un archivo denominado GetStream.cs (para C#) o GetStream.vb (para Visual Basic) recupera el recurso y muestra la imagen en un System.Windows.Forms.PictureBox control .

using System;
using System.Drawing;
using System.IO;
using System.Resources;
using System.Windows.Forms;

public class Example
{
   public static void Main()
   {
      ResourceManager rm = new ResourceManager("AppResources", typeof(Example).Assembly);
      Bitmap screen = (Bitmap) Image.FromStream(rm.GetStream("SplashScreen"));

      Form frm = new Form();
      frm.Size = new Size(300, 300);

      PictureBox pic = new PictureBox();
      pic.Bounds = frm.RestoreBounds;
      pic.BorderStyle = BorderStyle.Fixed3D;
      pic.Image = screen;
      pic.SizeMode = PictureBoxSizeMode.StretchImage;

      frm.Controls.Add(pic);
      pic.Anchor = AnchorStyles.Top | AnchorStyles.Bottom |
                   AnchorStyles.Left | AnchorStyles.Right;

      frm.ShowDialog();
   }
}
Imports System.Drawing
Imports System.IO
Imports System.Resources
Imports System.Windows.Forms

Module Example
   Public Sub Main()
      Dim rm As New ResourceManager("AppResources", GetType(Example).Assembly)
      Dim screen As Bitmap = CType(Image.FromStream(rm.GetStream("SplashScreen")), Bitmap)
      
      Dim frm As New Form()
      frm.Size = new Size(300, 300)

      Dim pic As New PictureBox()
      pic.Bounds = frm.RestoreBounds
      pic.BorderStyle = BorderStyle.Fixed3D 
      pic.Image = screen
      pic.SizeMode = PictureBoxSizeMode.StretchImage

      frm.Controls.Add(pic)
      pic.Anchor = AnchorStyles.Top Or AnchorStyles.Bottom Or
                   AnchorStyles.Left Or AnchorStyles.Right

      frm.ShowDialog()
   End Sub
End Module

Puede usar el siguiente archivo por lotes para compilar el ejemplo de C#. Si usa Visual Basic, cambie csc por vbcy la extensión del archivo de código fuente de .cs a .vb.

csc CreateResources.cs
CreateResources

resgen AppResources.resx

csc GetStream.cs /resource:AppResources.resources

Comentarios

El GetStream método toma el nombre de un recurso que se almacena como un MemoryStream objeto, obtiene el valor del Object recurso y devuelve un UnmanagedMemoryStream objeto . Requiere que trabaje directamente con un flujo de bytes, que después se convierte en un objeto . Este método es útil principalmente por motivos de rendimiento: recuperar un recurso como flujo de bytes en lugar de un objeto explícito puede mejorar el rendimiento.

El recurso devuelto se localiza para la referencia cultural de la interfaz de usuario del subproceso actual, que se define mediante la CultureInfo.CurrentUICulture propiedad . Si el recurso no está localizado para esa referencia cultural, el administrador de recursos usa reglas de reserva para cargar un recurso adecuado. Si no se encuentra ningún conjunto utilizable de recursos localizados, recurre ResourceManager a los recursos de la referencia cultural predeterminada. Si no se encuentra un conjunto de recursos para la referencia cultural predeterminada, el método produce una MissingManifestResourceException excepción o, si se espera que el conjunto de recursos resida en un ensamblado satélite, una MissingSatelliteAssemblyException excepción. Si el administrador de recursos puede cargar un conjunto de recursos adecuado, pero no encuentra un recurso denominado name, el método devuelve null.

La IgnoreCase propiedad determina si la comparación de name con los nombres de los recursos no distingue mayúsculas de minúsculas (el valor predeterminado) o distingue mayúsculas de minúsculas.

Se aplica a

GetStream(String, CultureInfo)

Importante

Esta API no es conforme a CLS.

Devuelve un objeto de secuencia de memoria no administrada a partir del recurso especificado, usando la referencia cultural especificada.

public:
 System::IO::UnmanagedMemoryStream ^ GetStream(System::String ^ name, System::Globalization::CultureInfo ^ culture);
public System.IO.UnmanagedMemoryStream? GetStream (string name, System.Globalization.CultureInfo? culture);
public System.IO.UnmanagedMemoryStream GetStream (string name, System.Globalization.CultureInfo culture);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public System.IO.UnmanagedMemoryStream GetStream (string name, System.Globalization.CultureInfo culture);
[System.Runtime.InteropServices.ComVisible(false)]
public System.IO.UnmanagedMemoryStream GetStream (string name, System.Globalization.CultureInfo culture);
member this.GetStream : string * System.Globalization.CultureInfo -> System.IO.UnmanagedMemoryStream
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.GetStream : string * System.Globalization.CultureInfo -> System.IO.UnmanagedMemoryStream
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.GetStream : string * System.Globalization.CultureInfo -> System.IO.UnmanagedMemoryStream
Public Function GetStream (name As String, culture As CultureInfo) As UnmanagedMemoryStream

Parámetros

name
String

Nombre de un recurso.

culture
CultureInfo

Referencia cultural que se va a usar para la búsqueda de recursos. Si culture es null, se usa la referencia cultural del subproceso actual.

Devoluciones

UnmanagedMemoryStream

Objeto de secuencia de memoria no administrada que representa un recurso.

Atributos

Excepciones

El valor del recurso especificado no es un objeto MemoryStream.

name es null.

No se han encontrado conjuntos de recursos que se puedan utilizar y no hay recursos predeterminados. Para obtener información sobre cómo administrar esta excepción, vea la sección "Administrar las excepciones MissingManifestResourceException y MissingSatelliteAssemblyException" en el tema de la clase ResourceManager.

Los recursos de la referencia cultural predeterminada residen en un ensamblado satélite que no se encuentra. Para obtener información sobre cómo administrar esta excepción, vea la sección "Administrar las excepciones MissingManifestResourceException y MissingSatelliteAssemblyException" en el tema de la clase ResourceManager.

Comentarios

El GetStream método toma el nombre de un recurso que se almacena como un MemoryStream objeto, obtiene el valor del Object recurso y devuelve un UnmanagedMemoryStream objeto . Requiere que trabaje directamente con un flujo de bytes, que después se convierte en un objeto . Este método es útil principalmente por motivos de rendimiento: recuperar un recurso como un flujo de bytes en lugar de un objeto explícito puede mejorar el rendimiento.

El recurso devuelto se localiza para la referencia cultural especificada por culture, o para la referencia cultural especificada por la CultureInfo.CurrentUICulture propiedad si culture es null. Si el recurso no está localizado para esa referencia cultural, el administrador de recursos usa reglas de reserva para cargar un recurso adecuado. Si no se encuentra ningún conjunto utilizable de recursos localizados, se ResourceManager revierte a los recursos de la referencia cultural predeterminada. Si no se encuentra un conjunto de recursos para la referencia cultural predeterminada, el método produce una MissingManifestResourceException excepción o, si se espera que el conjunto de recursos resida en un ensamblado satélite, una MissingSatelliteAssemblyException excepción. Si el administrador de recursos puede cargar un conjunto de recursos adecuado, pero no encuentra un recurso denominado name, el método devuelve null.

La IgnoreCase propiedad determina si la comparación de name con los nombres de los recursos no distingue mayúsculas de minúsculas (el valor predeterminado) o distingue mayúsculas de minúsculas.

Se aplica a