ResourceManager.GetStream Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 vbc
a 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 culture
null
, 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 culture
nebo pro jazykovou verzi určenou vlastností CultureInfo.CurrentUICulture, pokud je culture
null
. 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.