ResourceManager.GetStream Metoda

Definice

Vrátí nespravovaný objekt datového proudu 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 datového proudu paměti ze zadaného prostředku pomocí zadané jazykové verze.

GetStream(String)

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

UnmanagedMemoryStream

Nespravovaný objekt datového proudu paměti, který představuje prostředek.

Atributy

Výjimky

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

name je null.

Nebyla nalezena žádná použitelná sada prostředků a neexistují žádné výchozí prostředky. Informace o zpracování této výjimky naleznete v části "Zpracování MissingManifestResourceException a MissingSatelliteAssemblyException Výjimky" v ResourceManager tématu třídy.

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

Příklady

Následující příklad používá metodu GetStream(String) k načtení rastrového obrázku, 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 serializovaný obrázek. V tomto případě se obrázek načte ze souboru s názvem SplashScreen.jpg; název souboru můžete změnit 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 System.Windows.Forms.PictureBox prvku.

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. Pro 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 vlastností CultureInfo.CurrentUICulture . Pokud prostředek není lokalizovaný pro tuto jazykovou verzi, správce prostředků použije náhradní pravidla k načtení příslušného prostředku. Pokud se nenajde žádná použitelná sada lokalizovaných prostředků, vrátí se ResourceManager zpět k prostředkům výchozí jazykové verze. Pokud není nalezena sada prostředků pro výchozí jazykovou verzi, vyvolá metoda MissingManifestResourceException výjimku, nebo pokud se očekává, že sada prostředků bude umístěna ve satelitním sestavení, výjimku MissingSatelliteAssemblyException . 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, metoda vrátí null.

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

Platí pro

GetStream(String, CultureInfo)

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Vrátí nespravovaný objekt datového proudu 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 ano null, použije se jazyková verze aktuálního vlákna.

Návraty

UnmanagedMemoryStream

Nespravovaný objekt datového proudu paměti, který představuje prostředek.

Atributy

Výjimky

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

name je null.

Nebyla nalezena žádná použitelná sada prostředků a neexistují žádné výchozí prostředky. Informace o zpracování této výjimky naleznete v části "Zpracování MissingManifestResourceException a MissingSatelliteAssemblyException Výjimky" v ResourceManager tématu třídy.

Výchozí prostředky jazykové verze se nacházejí v satelitním sestavení, které nebylo nalezeno. Informace o zpracování této výjimky naleznete v části "Zpracování MissingManifestResourceException a MissingSatelliteAssemblyException Výjimky" 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 je lokalizován pro jazykovou verzi, která je určena culture, nebo pro jazykovou verzi, která je určena CultureInfo.CurrentUICulture vlastností, pokud culture je null. Pokud prostředek není lokalizovaný pro tuto jazykovou verzi, správce prostředků použije náhradní pravidla k načtení příslušného prostředku. Pokud se nenajde žádná použitelná sada lokalizovaných prostředků, vrátí se ResourceManager zpět k prostředkům výchozí jazykové verze. Pokud není nalezena sada prostředků pro výchozí jazykovou verzi, vyvolá metoda MissingManifestResourceException výjimku, nebo pokud se očekává, že sada prostředků bude umístěna ve satelitním sestavení, výjimku MissingSatelliteAssemblyException . 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, metoda vrátí null.

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

Platí pro