ResourceManager.GetStream Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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)
- Source:
- ResourceManager.cs
- Source:
- ResourceManager.cs
- Source:
- ResourceManager.cs
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
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 vbc
y 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 una secuencia de bytes, que luego 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 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)
- Source:
- ResourceManager.cs
- Source:
- ResourceManager.cs
- Source:
- ResourceManager.cs
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
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 una secuencia de bytes, que luego 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, 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.