Sdílet prostřednictvím


ResourceManager.GetStream Metoda

Definice

Vrátí nespravovaný objekt streamu paměti ze zadaného prostředku.

Přetížení

GetStream(String)

Vrátí nespravovaný objekt datového proudu paměti ze zadaného prostředku.

GetStream(String, CultureInfo)

Vrátí nespravovaný objekt streamu paměti ze zadaného prostředku pomocí zadané jazykové verze.

GetStream(String)

Zdroj:
ResourceManager.cs
Zdroj:
ResourceManager.cs
Zdroj:
ResourceManager.cs

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Vrátí nespravovaný objekt datového proudu paměti ze zadaného prostředku.

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

Parametry

name
String

Název prostředku.

Návraty

Nespravovaný objekt streamu paměti, který představuje prostředek.

Atributy

Výjimky

Hodnota zadaného prostředku není MemoryStream objekt.

name je null.

Nenašla se žádná použitelná sada prostředků a neexistují žádné výchozí prostředky. Informace o zpracování této výjimky najdete v části "Zpracování výjimek MissingManifestResourceException a MissingSatelliteAssemblyException" v ResourceManager tématu třídy.

Prostředky výchozí jazykové verze se nacházejí v satelitním sestavení, které nebylo nalezeno. Informace o zpracování této výjimky najdete v části "Zpracování výjimek MissingManifestResourceException a MissingSatelliteAssemblyException" v ResourceManager tématu třídy.

Příklady

Následující příklad používá metodu GetStream(String) k načtení bitmapy, která se používá v úvodním okně aplikace. Následující zdrojový kód ze souboru s názvem CreateResources.cs (pro C#) nebo CreateResources.vb (pro Visual Basic) vygeneruje soubor .resx s názvem AppResources.resx, který obsahuje serializovanou image. V tomto případě je obrázek načten ze souboru s názvem SplashScreen.jpg; název souboru můžete upravit tak, aby nahradil vlastní image.

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

Následující kód ze souboru s názvem GetStream.cs (pro C#) nebo GetStream.vb (pro Visual Basic) pak načte prostředek a zobrazí obrázek v ovládacím prvku 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

K sestavení příkladu jazyka C# můžete použít následující dávkový soubor. V jazyce Visual Basic změňte csc na vbca změňte příponu souboru zdrojového kódu z .cs na .vb.

csc CreateResources.cs
CreateResources

resgen AppResources.resx

csc GetStream.cs /resource:AppResources.resources

Poznámky

Metoda GetStream přebírá název prostředku, který je uložený jako MemoryStream objekt, získá hodnotu Object prostředku a vrátí UnmanagedMemoryStream objekt. Vyžaduje, abyste pracovali přímo se streamem bajtů, který pak převedete na objekt. Tato metoda je užitečná především z důvodů výkonu: Načtení prostředku jako datového proudu bajtů místo explicitního objektu může zvýšit výkon.

Vrácený prostředek je lokalizován pro jazykovou verzi uživatelského rozhraní aktuálního vlákna, která je definována CultureInfo.CurrentUICulture vlastností . Pokud prostředek není lokalizovaný pro tuto jazykovou verzi, použije správce prostředků k načtení příslušného prostředku záložní pravidla. Pokud se nenajde žádná použitelná sada lokalizovaných prostředků, ResourceManager vrátí se zpět k prostředkům výchozí jazykové verze. Pokud není nalezen prostředek nastavený pro výchozí jazykovou verzi, vyvolá MissingManifestResourceException metoda výjimku nebo, pokud se očekává, že se sada prostředků bude nacházet v satelitním MissingSatelliteAssemblyException sestavení, výjimku. Pokud správce prostředků může načíst příslušnou sadu prostředků, ale nemůže najít prostředek s názvem name, vrátí nullmetoda .

Vlastnost IgnoreCase určuje, zda porovnání name s názvy prostředků nerozlišuje malá a velká písmena (výchozí nastavení) nebo rozlišuje malá a velká písmena.

Platí pro

GetStream(String, CultureInfo)

Zdroj:
ResourceManager.cs
Zdroj:
ResourceManager.cs
Zdroj:
ResourceManager.cs

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Vrátí nespravovaný objekt streamu paměti ze zadaného prostředku pomocí zadané jazykové verze.

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

Parametry

name
String

Název prostředku.

culture
CultureInfo

Jazyková verze, která se má použít pro vyhledávání prostředků. Pokud culture je null, použije se jazyková verze pro aktuální vlákno.

Návraty

Nespravovaný objekt streamu paměti, který představuje prostředek.

Atributy

Výjimky

Hodnota zadaného prostředku není MemoryStream objekt.

name je null.

Nenašla se žádná použitelná sada prostředků a neexistují žádné výchozí prostředky. Informace o zpracování této výjimky najdete v části "Zpracování výjimek MissingManifestResourceException a MissingSatelliteAssemblyException" v ResourceManager tématu třídy.

Prostředky výchozí jazykové verze se nacházejí v satelitním sestavení, které nebylo nalezeno. Informace o zpracování této výjimky najdete v části "Zpracování výjimek MissingManifestResourceException a MissingSatelliteAssemblyException" v ResourceManager tématu třídy.

Poznámky

Metoda GetStream přebírá název prostředku, který je uložený jako MemoryStream objekt, získá hodnotu Object prostředku a vrátí UnmanagedMemoryStream objekt. Vyžaduje, abyste pracovali přímo se streamem bajtů, který pak převedete na objekt. Tato metoda je užitečná především z důvodů výkonu: Načtení prostředku jako datového proudu bajtů místo explicitního objektu může zvýšit výkon.

Vrácený prostředek se lokalizuje pro jazykovou verzi určenou parametrem culturenebo pro jazykovou verzi určenou CultureInfo.CurrentUICulture vlastností , pokud culture je null. Pokud prostředek není lokalizovaný pro tuto jazykovou verzi, použije správce prostředků k načtení příslušného prostředku záložní pravidla. Pokud se nenajde žádná použitelná sada lokalizovaných prostředků, ResourceManager vrátí se zpět k prostředkům výchozí jazykové verze. Pokud není nalezen prostředek nastavený pro výchozí jazykovou verzi, vyvolá MissingManifestResourceException metoda výjimku nebo, pokud se očekává, že se sada prostředků bude nacházet v satelitním MissingSatelliteAssemblyException sestavení, výjimku. Pokud správce prostředků může načíst příslušnou sadu prostředků, ale nemůže najít prostředek s názvem name, vrátí nullmetoda .

Vlastnost IgnoreCase určuje, zda porovnání name s názvy prostředků nerozlišuje malá a velká písmena (výchozí nastavení) nebo rozlišuje malá a velká písmena.

Platí pro