Sdílet prostřednictvím


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)

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 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 tom, jak tuto výjimku zpracovat, naleznete v části "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" v tématu třídy ResourceManager.

Prostředky výchozí jazykové verze se nacházejí v satelitním sestavení, které nebylo nalezeno. Informace o tom, jak tuto výjimku zpracovat, naleznete v části "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" v tématu třídy ResourceManager.

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 ú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 image 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 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í objekt UnmanagedMemoryStream. Vyžaduje, abyste pracovali přímo s datovým proudem bajtů, který pak převedete na objekt. Tato metoda je užitečná hlavně 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 danou jazykovou verzi, správce prostředků použije k načtení příslušného prostředku náhradní pravidla. Pokud se nenajde žádná použitelná sada lokalizovaných prostředků, ResourceManager se vrátí k prostředkům výchozí jazykové verze. Pokud není nalezena sada prostředků pro výchozí jazykovou verzi, vyvolá metoda výjimku MissingManifestResourceException nebo pokud se sada prostředků očekává, že se nachází ve satelitním sestavení, MissingSatelliteAssemblyException výjimka. 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í metoda 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á 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 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 je culturenull, použije se jazyková verze pro aktuální vlákno.

Návraty

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 tom, jak tuto výjimku zpracovat, naleznete v části "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" v tématu třídy ResourceManager.

Prostředky výchozí jazykové verze se nacházejí v satelitním sestavení, které nebylo nalezeno. Informace o tom, jak tuto výjimku zpracovat, naleznete v části "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" v tématu třídy ResourceManager.

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í objekt UnmanagedMemoryStream. Vyžaduje, abyste pracovali přímo s datovým proudem bajtů, který pak převedete na objekt. Tato metoda je užitečná hlavně 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 určenou culturenebo pro jazykovou verzi určenou vlastností CultureInfo.CurrentUICulture, pokud je culturenull. Pokud prostředek není lokalizovaný pro danou jazykovou verzi, správce prostředků použije k načtení příslušného prostředku náhradní pravidla. Pokud se nenajde žádná použitelná sada lokalizovaných prostředků, ResourceManager se vrátí k prostředkům výchozí jazykové verze. Pokud není nalezena sada prostředků pro výchozí jazykovou verzi, vyvolá metoda výjimku MissingManifestResourceException nebo pokud se sada prostředků očekává, že se nachází ve satelitním sestavení, MissingSatelliteAssemblyException výjimka. 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í metoda 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á písmena.

Platí pro