ResourceManager.GetStream Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt ein nicht verwaltetes Arbeitsspeicherstreamobjekt aus einer angegebenen Ressource zurück.
Überlädt
GetStream(String) |
Gibt ein nicht verwaltetes Arbeitsspeicherstreamobjekt aus der angegebenen Ressource zurück. |
GetStream(String, CultureInfo) |
Gibt mithilfe der angegebenen Kultur ein nicht verwaltetes Arbeitsspeicherstreamobjekt aus der angegebenen Ressource zurück. |
GetStream(String)
- Quelle:
- ResourceManager.cs
- Quelle:
- ResourceManager.cs
- Quelle:
- ResourceManager.cs
Wichtig
Diese API ist nicht CLS-kompatibel.
Gibt ein nicht verwaltetes Arbeitsspeicherstreamobjekt aus der angegebenen Ressource zurück.
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
Parameter
- name
- String
Der Name einer Ressource.
Gibt zurück
Ein nicht verwaltetes Arbeitsspeicherstreamobjekt, das eine Ressource darstellt.
- Attribute
Ausnahmen
Der Wert der angegebenen Ressource ist kein MemoryStream-Objekt.
name
ist null
.
Es wurde kein passender Satz von Ressourcen gefunden, und es sind keine Standardressourcen vorhanden. Informationen zur Behandlung dieser Ausnahme finden Sie im Abschnitt über die Behandlung von MissingManifestResourceException- und MissingSatelliteAssemblyException-Ausnahmen im Thema zur ResourceManager-Klasse.
Die Ressourcen der Standardkultur befinden sich in einer Satellitenassembly, die nicht gefunden werden konnte. Informationen zur Behandlung dieser Ausnahme finden Sie im Abschnitt über die Behandlung von MissingManifestResourceException- und MissingSatelliteAssemblyException-Ausnahmen im Thema zur ResourceManager-Klasse.
Beispiele
Im folgenden Beispiel wird die GetStream(String) -Methode verwendet, um eine Bitmap abzurufen, die im Begrüßungsbildschirm-Fenster einer App erscheint. Der folgende Quellcode aus einer Datei namens CreateResources.cs (für C#) oder CreateResources.vb (für Visual Basic) generiert eine RESX-Datei namens AppResources.resx, die das serialisierte Image enthält. In diesem Fall wird das Bild aus einer Datei namens SplashScreen.jpg geladen. Sie können den Dateinamen ändern und damit Ihr eigenes Bild laden.
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
Der folgende Code aus einer Datei namens GetStream.cs (für C#) oder GetStream.vb (für Visual Basic) ruft dann die Ressource ab und zeigt das Bild in einem Steuerelement an 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
Sie können die folgende Batchdatei verwenden, um das C#-Beispiel zu erstellen. Ändern Sie in Visual Basic csc
in vbc
und ändern Sie die Erweiterung des Quellcodes von .cs
in .vb
.
csc CreateResources.cs
CreateResources
resgen AppResources.resx
csc GetStream.cs /resource:AppResources.resources
Hinweise
Die GetStream -Methode übernimmt den Namen einer Ressource, die als MemoryStream Objekt gespeichert ist, ruft den Wert der Object Ressource ab und gibt ein UnmanagedMemoryStream -Objekt zurück. Dies erfordert, dass Sie direkt mit einem Bytestrom arbeiten, den Sie dann in ein Objekt konvertieren. Diese Methode ist vor allem aus Leistungsgründen nützlich: Das Abrufen einer Ressource als Bytestream anstelle eines expliziten Objekts kann die Leistung verbessern.
Die zurückgegebene Ressource wird für die Benutzeroberflächenkultur des aktuellen Threads lokalisiert, die durch die CultureInfo.CurrentUICulture -Eigenschaft definiert wird. Wenn die Ressource nicht für diese Kultur lokalisiert ist, verwendet der Ressourcen-Manager Fallbackregeln, um eine entsprechende Ressource zu laden. Wenn kein verwendbarer Satz lokalisierter Ressourcen gefunden wird, greift der ResourceManager auf die Ressourcen der Standardkultur zurück. Wenn kein Ressourcensatz für die Standardkultur gefunden wird, löst die Methode eine MissingManifestResourceException Ausnahme aus, oder, wenn sich der Ressourcensatz in einer Satellitenassembly befindet, eine MissingSatelliteAssemblyException Ausnahme. Wenn der Ressourcen-Manager einen entsprechenden Ressourcensatz laden kann, aber keine Ressource mit dem Namen name
finden kann, gibt die -Methode zurück null
.
Die IgnoreCase -Eigenschaft bestimmt, ob beim Vergleich von name
mit den Namen der Ressourcen die Groß-/Kleinschreibung (Standard) nicht beachtet wird oder ob die Groß-/Kleinschreibung beachtet wird.
Gilt für:
GetStream(String, CultureInfo)
- Quelle:
- ResourceManager.cs
- Quelle:
- ResourceManager.cs
- Quelle:
- ResourceManager.cs
Wichtig
Diese API ist nicht CLS-kompatibel.
Gibt mithilfe der angegebenen Kultur ein nicht verwaltetes Arbeitsspeicherstreamobjekt aus der angegebenen Ressource zurück.
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
Parameter
- name
- String
Der Name einer Ressource.
- culture
- CultureInfo
Die Kultur, die für die Ressourcensuche verwendet werden soll. Wenn culture
null
ist, wird die Kultur für den aktuellen Thread verwendet.
Gibt zurück
Ein nicht verwaltetes Arbeitsspeicherstreamobjekt, das eine Ressource darstellt.
- Attribute
Ausnahmen
Der Wert der angegebenen Ressource ist kein MemoryStream-Objekt.
name
ist null
.
Es wurde kein passender Satz von Ressourcen gefunden, und es sind keine Standardressourcen vorhanden. Informationen zur Behandlung dieser Ausnahme finden Sie im Abschnitt über die Behandlung von MissingManifestResourceException- und MissingSatelliteAssemblyException-Ausnahmen im Thema zur ResourceManager-Klasse.
Die Ressourcen der Standardkultur befinden sich in einer Satellitenassembly, die nicht gefunden werden konnte. Informationen zur Behandlung dieser Ausnahme finden Sie im Abschnitt über die Behandlung von MissingManifestResourceException- und MissingSatelliteAssemblyException-Ausnahmen im Thema zur ResourceManager-Klasse.
Hinweise
Die GetStream -Methode übernimmt den Namen einer Ressource, die als MemoryStream Objekt gespeichert ist, ruft den Wert der Object Ressource ab und gibt ein UnmanagedMemoryStream -Objekt zurück. Dies erfordert, dass Sie direkt mit einem Bytestrom arbeiten, den Sie dann in ein Objekt konvertieren. Diese Methode ist vor allem aus Leistungsgründen nützlich: Das Abrufen einer Ressource als Bytestream anstelle eines expliziten Objekts kann die Leistung verbessern.
Die zurückgegebene Ressource wird für die Kultur lokalisiert, die von culture
oder für die Kultur, die von der CultureInfo.CurrentUICulture -Eigenschaft angegeben wird, wenn culture
ist null
. Wenn die Ressource nicht für diese Kultur lokalisiert ist, verwendet der Ressourcen-Manager Fallbackregeln, um eine entsprechende Ressource zu laden. Wenn kein verwendbarer Satz lokalisierter Ressourcen gefunden wird, greift der ResourceManager auf die Ressourcen der Standardkultur zurück. Wenn kein Ressourcensatz für die Standardkultur gefunden wird, löst die Methode eine MissingManifestResourceException Ausnahme aus, oder, wenn sich der Ressourcensatz in einer Satellitenassembly befindet, eine MissingSatelliteAssemblyException Ausnahme. Wenn der Ressourcen-Manager einen entsprechenden Ressourcensatz laden kann, aber keine Ressource mit dem Namen name
finden kann, gibt die -Methode zurück null
.
Die IgnoreCase -Eigenschaft bestimmt, ob beim Vergleich von name
mit den Namen der Ressourcen die Groß-/Kleinschreibung (Standard) nicht beachtet wird oder ob die Groß-/Kleinschreibung beachtet wird.