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 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 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í 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í null
metoda .
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 culture
nebo 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í null
metoda .
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.