ResourceManager.GetStream Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Retorna um objeto de fluxo de memória não gerido a partir de um recurso especificado.
Sobrecargas
| Name | Description |
|---|---|
| GetStream(String) |
Devolve um objeto de fluxo de memória não gerido do recurso especificado. |
| GetStream(String, CultureInfo) |
Devolve um objeto de fluxo de memória não gerido do recurso especificado, usando a cultura especificada. |
GetStream(String)
Importante
Esta API não está em conformidade com CLS.
Devolve um objeto de fluxo de memória não gerido do recurso especificado.
public:
System::IO::UnmanagedMemoryStream ^ GetStream(System::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);
public System.IO.UnmanagedMemoryStream GetStream(string name);
[<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
member this.GetStream : string -> System.IO.UnmanagedMemoryStream
Public Function GetStream (name As String) As UnmanagedMemoryStream
Parâmetros
- name
- String
O nome de um recurso.
Devoluções
Um objeto de fluxo de memória não gerido que representa um recurso.
- Atributos
Exceções
O valor do recurso especificado não é um MemoryStream objeto.
name é null.
Não é encontrado nenhum conjunto de recursos utilizáveis e não existem recursos padrão. Para informações sobre como lidar com esta exceção, consulte a secção "Handling MissingManifestResourceException e MissingSatelliteAssemblyExceptions" no ResourceManager tópico da classe.
Os recursos da cultura padrão residem num conjunto de satélites que não foi encontrado. Para informações sobre como lidar com esta exceção, consulte a secção "Handling MissingManifestResourceException e MissingSatelliteAssemblyExceptions" no ResourceManager tópico da classe.
Exemplos
O exemplo a seguir usa o método GetStream(String) para recuperar um bitmap que é usado na janela inicial de abertura de um aplicativo. O código-fonte seguinte a partir de um ficheiro chamado CreateResources.cs (para C#) ou CreateResources.vb (para Visual Basic) gera um ficheiro .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 seguinte de um ficheiro chamado GetStream.cs (para C#) ou GetStream.vb (para Visual Basic) recupera então o recurso e apresenta a imagem num controlo System.Windows.Forms.PictureBox.
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 em C#. Para Visual Basic, altere csc para vbce 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
Observações
O GetStream método assume o nome de um recurso que é armazenado como objeto MemoryStream , obtém o valor do Object recurso e devolve um UnmanagedMemoryStream objeto. Requer que trabalhes diretamente com um fluxo de bytes, que depois convertes num objeto. Este método é útil principalmente por razões 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 IU do thread atual, que é definida pela propriedade CultureInfo.CurrentUICulture. Se o recurso não estiver localizado para essa cultura, o gerenciador de recursos usará regras de fallback para carregar um recurso apropriado. Se não for encontrado nenhum conjunto utilizável de recursos localizados, o ResourceManager recorrerá aos recursos da cultura padrão. Se um conjunto de recursos para a cultura predefinida não for encontrado, o método lançará uma MissingManifestResourceException exceção ou, se for esperado que o conjunto de recursos resida num 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 propriedade IgnoreCase determina se a comparação de name com os nomes dos recursos é insensível a maiúsculas e minúsculas (o padrão) ou se diferencia entre maiúsculas e minúsculas.
Aplica-se a
GetStream(String, CultureInfo)
Importante
Esta API não está em conformidade com CLS.
Devolve um objeto de fluxo de memória não gerido do recurso especificado, usando a cultura especificada.
public:
System::IO::UnmanagedMemoryStream ^ GetStream(System::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);
public System.IO.UnmanagedMemoryStream GetStream(string name, System.Globalization.CultureInfo culture);
[<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
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 usar para a pesquisa de recursos. Se culture for null, é usada a cultura para o fio atual.
Devoluções
Um objeto de fluxo de memória não gerido que representa um recurso.
- Atributos
Exceções
O valor do recurso especificado não é um MemoryStream objeto.
name é null.
Não é encontrado nenhum conjunto de recursos utilizáveis e não existem recursos padrão. Para informações sobre como lidar com esta exceção, consulte a secção "Handling MissingManifestResourceException e MissingSatelliteAssemblyExceptions" no ResourceManager tópico da classe.
Os recursos da cultura padrão residem num conjunto de satélites que não foi encontrado. Para informações sobre como lidar com esta exceção, consulte a secção "Handling MissingManifestResourceException e MissingSatelliteAssemblyExceptions" no ResourceManager tópico da classe.
Observações
O GetStream método assume o nome de um recurso que é armazenado como objeto MemoryStream , obtém o valor do Object recurso e devolve um UnmanagedMemoryStream objeto. Requer que trabalhes diretamente com um fluxo de bytes, que depois convertes num objeto. Este método é útil principalmente por razões 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 propriedade CultureInfo.CurrentUICulture, 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 não for encontrado nenhum conjunto utilizável de recursos localizados, o ResourceManager recorrerá aos recursos da cultura padrão. Se um conjunto de recursos para a cultura predefinida não for encontrado, o método lançará uma MissingManifestResourceException exceção ou, se for esperado que o conjunto de recursos resida num 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 propriedade IgnoreCase determina se a comparação de name com os nomes dos recursos é insensível a maiúsculas e minúsculas (o padrão) ou se diferencia entre maiúsculas e minúsculas.