ResourceManager.GetStream Methode

Definition

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)

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

UnmanagedMemoryStream

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 Bild 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 mit dem Namen GetStream.cs (für C#) oder GetStream.vb (für Visual Basic) ruft dann die Ressource ab und zeigt das Bild in einem System.Windows.Forms.PictureBox Steuerelement an.

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 vbcund ä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 verwendet den Namen einer Ressource, die als MemoryStream Objekt gespeichert wird, ruft den Wert der Object Ressource ab und gibt ein UnmanagedMemoryStream Objekt zurück. Es erfordert, dass Sie direkt mit einem Datenstrom von Bytes arbeiten, der Sie dann in ein Objekt konvertieren. Diese Methode ist hauptsächlich aus Leistungsgründen nützlich: Abrufen einer Ressource als Bytestrom anstelle eines expliziten Objekts kann die Leistung verbessern.

Die zurückgegebene Ressource wird für die Ui-Kultur des aktuellen Threads lokalisiert, der durch die CultureInfo.CurrentUICulture Eigenschaft definiert wird. Wenn die Ressource für diese Kultur nicht lokalisiert ist, verwendet der Ressourcenmanager Fallbackregeln, um eine entsprechende Ressource zu laden. Wenn keine nutzbare Gruppe lokalisierter Ressourcen gefunden wird, fällt der ResourceManager Fall auf die Ressourcen der Standardkultur zurück. Wenn eine Ressource für die Standardkultur nicht gefunden wird, löst die Methode eine MissingManifestResourceException Ausnahme aus, oder wenn der Ressourcensatz erwartet wird, dass es sich in einer Satellitenassembly befindet, eine MissingSatelliteAssemblyException Ausnahme. Wenn der Ressourcen-Manager einen entsprechenden Ressourcensatz laden kann, aber keine Ressource mit dem Namen namefinden kann, gibt die Methode zurück null.

Die IgnoreCase Eigenschaft bestimmt, ob der Vergleich name mit den Namen von Ressourcen groß- oder kleinschreibungsgeschützt ist.

Gilt für

GetStream(String, CultureInfo)

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 culturenull ist, wird die Kultur für den aktuellen Thread verwendet.

Gibt zurück

UnmanagedMemoryStream

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 verwendet den Namen einer Ressource, die als MemoryStream Objekt gespeichert wird, ruft den Wert der Object Ressource ab und gibt ein UnmanagedMemoryStream Objekt zurück. Es erfordert, dass Sie direkt mit einem Datenstrom von Bytes arbeiten, der Sie dann in ein Objekt konvertieren. Diese Methode ist hauptsächlich aus Leistungsgründen nützlich: Abrufen einer Ressource als Bytestrom anstelle eines expliziten Objekts kann die Leistung verbessern.

Die zurückgegebene Ressource wird für die Kultur lokalisiert, die von cultureder Eigenschaft angegeben wird, oder für die Kultur, die von der CultureInfo.CurrentUICulture Eigenschaft angegeben wird, falls culture nullvorhanden. Wenn die Ressource für diese Kultur nicht lokalisiert ist, verwendet der Ressourcenmanager Fallbackregeln, um eine entsprechende Ressource zu laden. Wenn keine nutzbare Gruppe lokalisierter Ressourcen gefunden wird, fällt der ResourceManager Fall auf die Ressourcen der Standardkultur zurück. Wenn eine Ressource für die Standardkultur nicht gefunden wird, löst die Methode eine MissingManifestResourceException Ausnahme aus, oder wenn der Ressourcensatz erwartet wird, dass es sich in einer Satellitenassembly befindet, eine MissingSatelliteAssemblyException Ausnahme. Wenn der Ressourcen-Manager einen entsprechenden Ressourcensatz laden kann, aber keine Ressource mit dem Namen namefinden kann, gibt die Methode zurück null.

Die IgnoreCase Eigenschaft bestimmt, ob der Vergleich name mit den Namen von Ressourcen groß- oder kleinschreibungsgeschützt ist.

Gilt für