ResourceManager.GetStream Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retorna um objeto de fluxo de memória não gerenciado de um recurso especificado.
Sobrecargas
GetStream(String) |
Retorna um objeto de fluxo de memória não gerenciada do recurso especificado. |
GetStream(String, CultureInfo) |
Retorna um objeto de fluxo de memória não gerenciada do recurso especificado, usando a cultura especificada. |
GetStream(String)
- Origem:
- ResourceManager.cs
- Origem:
- ResourceManager.cs
- Origem:
- ResourceManager.cs
Importante
Esta API não está em conformidade com CLS.
Retorna um objeto de fluxo de memória não gerenciada do 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
O nome de um recurso.
Retornos
Um objeto de fluxo de memória não gerenciada que representa um recurso.
- Atributos
Exceções
O valor do recurso especificado não é um objeto MemoryStream.
name
é null
.
Não foi encontrado nenhum conjunto de recursos utilizável e não existem recursos padrão. Para obter informações sobre como lidar com essa exceção, consulte a seção "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" (Tratando as exceções MissingManifestResourceException e MissingSatelliteAssemblyException) no tópico sobre a classe ResourceManager.
Os recursos da cultura padrão residem em um assembly satélite que não pôde ser encontrado. Para obter informações sobre como lidar com essa exceção, consulte a seção "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" (Tratando as exceções MissingManifestResourceException e MissingSatelliteAssemblyException) no tópico sobre a classe ResourceManager.
Exemplos
O exemplo a seguir usa o método GetStream(String) para recuperar um bitmap que é usado em uma janela inicial de abertura do aplicativo. O código-fonte a seguir de um arquivo chamado CreateResources.cs (para C#) ou CreateResources.vb (para Visual Basic) gera um arquivo .resx chamado AppResources.resx que contém a imagem serializada. Nesse caso, a imagem é carregada a partir de um arquivo chamado SplashScreen.jpg; você pode modificar o nome do arquivo para substituir sua própria imagem.
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
O código a seguir de um arquivo chamado GetStream.cs (para C#) ou GetStream.vb (para Visual Basic) recupera o recurso e exibe a imagem em um System.Windows.Forms.PictureBox controle.
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
Você pode usar o seguinte arquivo em lotes para criar o exemplo de C#. Para o Visual Basic, altere csc
para vbc
e altere a extensão do arquivo de código-fonte de .cs
para .vb
.
csc CreateResources.cs
CreateResources
resgen AppResources.resx
csc GetStream.cs /resource:AppResources.resources
Comentários
O GetStream método usa o nome de um recurso armazenado como um MemoryStream objeto, obtém o valor do Object recurso e retorna um UnmanagedMemoryStream objeto . Ele exige que você trabalhe diretamente com um fluxo de bytes, que você converte em um objeto . Esse método é útil principalmente por motivos de desempenho: recuperar um recurso como um fluxo de bytes em vez de um objeto explícito pode melhorar o desempenho.
O recurso retornado é localizado para a cultura da interface do usuário do thread atual, que é definido pela CultureInfo.CurrentUICulture propriedade . Se o recurso não estiver localizado para essa cultura, o gerenciador de recursos usará regras de fallback para carregar um recurso apropriado. Se nenhum conjunto utilizável de recursos localizados for encontrado, o ResourceManager retornará os recursos da cultura padrão. Se um conjunto de recursos para a cultura padrão não for encontrado, o método gerará uma MissingManifestResourceException exceção ou, se espera-se que o conjunto de recursos resida em um assembly satélite, uma MissingSatelliteAssemblyException exceção. Se o gerenciador de recursos puder carregar um conjunto de recursos apropriado, mas não puder encontrar um recurso chamado name
, o método retornará null
.
A IgnoreCase propriedade determina se a comparação de name
com os nomes dos recursos não diferencia maiúsculas de minúsculas (o padrão) ou diferencia maiúsculas de minúsculas.
Aplica-se a
GetStream(String, CultureInfo)
- Origem:
- ResourceManager.cs
- Origem:
- ResourceManager.cs
- Origem:
- ResourceManager.cs
Importante
Esta API não está em conformidade com CLS.
Retorna um objeto de fluxo de memória não gerenciada do recurso especificado, usando a cultura 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
O nome de um recurso.
- culture
- CultureInfo
A cultura a ser usada para a pesquisa de recursos. Se culture
for null
, a cultura do thread atual será usada.
Retornos
Um objeto de fluxo de memória não gerenciada que representa um recurso.
- Atributos
Exceções
O valor do recurso especificado não é um objeto MemoryStream.
name
é null
.
Não foi encontrado nenhum conjunto de recursos utilizável e não existem recursos padrão. Para obter informações sobre como lidar com essa exceção, consulte a seção "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" (Tratando as exceções MissingManifestResourceException e MissingSatelliteAssemblyException) no tópico sobre a classe ResourceManager.
Os recursos da cultura padrão residem em um assembly satélite que não pôde ser encontrado. Para obter informações sobre como lidar com essa exceção, consulte a seção "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" (Tratando as exceções MissingManifestResourceException e MissingSatelliteAssemblyException) no tópico sobre a classe ResourceManager.
Comentários
O GetStream método usa o nome de um recurso armazenado como um MemoryStream objeto, obtém o valor do Object recurso e retorna um UnmanagedMemoryStream objeto . Ele exige que você trabalhe diretamente com um fluxo de bytes, que você converte em um objeto . Esse método é útil principalmente por motivos de desempenho: recuperar um recurso como um fluxo de bytes em vez de um objeto explícito pode melhorar o desempenho.
O recurso retornado é localizado para a cultura especificada por culture
ou para a cultura especificada pela CultureInfo.CurrentUICulture propriedade, se culture
for null
. Se o recurso não estiver localizado para essa cultura, o gerenciador de recursos usará regras de fallback para carregar um recurso apropriado. Se nenhum conjunto utilizável de recursos localizados for encontrado, o ResourceManager retornará os recursos da cultura padrão. Se um conjunto de recursos para a cultura padrão não for encontrado, o método gerará uma MissingManifestResourceException exceção ou, se espera-se que o conjunto de recursos resida em um assembly satélite, uma MissingSatelliteAssemblyException exceção. Se o gerenciador de recursos puder carregar um conjunto de recursos apropriado, mas não puder encontrar um recurso chamado name
, o método retornará null
.
A IgnoreCase propriedade determina se a comparação de name
com os nomes dos recursos não diferencia maiúsculas de minúsculas (o padrão) ou diferencia maiúsculas de minúsculas.