Nyelv

ResourceManager.GetStream Metódus

Definíció

Egy nem felügyelt memóriastream objektumot ad vissza egy megadott erőforrásból.

Túlterhelések

Name Description
GetStream(String)

Egy nem felügyelt memóriastream objektumot ad vissza a megadott erőforrásból.

GetStream(String, CultureInfo)

Egy nem felügyelt memóriastream objektumot ad vissza a megadott erőforrásból a megadott kultúrával.

GetStream(String)

Forrás:
ResourceManager.cs
Forrás:
ResourceManager.cs
Forrás:
ResourceManager.cs
Forrás:
ResourceManager.cs
Forrás:
ResourceManager.cs

Fontos

Ez az API nem CLS-kompatibilis.

Egy nem felügyelt memóriastream objektumot ad vissza a megadott erőforrásból.

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

Paraméterek

name
String

Egy erőforrás neve.

Válaszok

Erőforrást jelképező nem felügyelt memóriastream objektum.

Attribútumok

Kivételek

A megadott erőforrás értéke nem MemoryStream objektum.

name az null.

Nem található használható erőforráskészlet, és nincsenek alapértelmezett erőforrások. A kivétel kezeléséről az osztálytéma "A MissingManifestResourceException és a MissingSatelliteAssemblyException kivételek kezelése" című szakaszában ResourceManager tájékozódhat.

Az alapértelmezett kultúra erőforrásai olyan műholdas szerelvényben találhatók, amely nem található. A kivétel kezeléséről az osztálytéma "A MissingManifestResourceException és a MissingSatelliteAssemblyException kivételek kezelése" című szakaszában ResourceManager tájékozódhat.

Példák

Az alábbi példa a GetStream(String) metódust használja az alkalmazás nyitó kezdőablakában használt bitkép lekérésére. A következő forráskód egy CreateResources.cs (C#) vagy CreateResources.vb (Visual Basic) nevű fájlból létrehoz egy AppResources.resx nevű .resx fájlt, amely tartalmazza a szerializált képet. Ebben az esetben a rendszerkép egy SplashScreen.jpgnevű fájlból töltődik be; módosíthatja a fájlnevet a saját rendszerkép helyettesítésére.

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Resources;

public class CreateResourcesExample
{
   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

A következő kód egy GetStream.cs (C#) vagy GetStream.vb (Visual Basic) nevű fájlból, majd lekéri az erőforrást, és megjeleníti a képet egy System.Windows.Forms.PictureBox vezérlőelemben.

using System.Drawing;
using System.Resources;
using System.Windows.Forms;

public class Example3
{
   public static void Main()
   {
      ResourceManager rm = new ResourceManager("AppResources", typeof(Example3).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

A C#-példa létrehozásához az alábbi kötegfájlt használhatja. Visual Basic esetén módosítsa a cscvbc, és módosítsa a forráskódfájl kiterjesztését .cs-ról .vb- ra.

csc CreateResources.cs
CreateResources

resgen AppResources.resx

csc GetStream.cs /resource:AppResources.resources

Megjegyzések

A GetStream metódus egy objektumként MemoryStream tárolt erőforrás nevét veszi fel, lekéri az Object erőforrás értékét, és visszaad egy UnmanagedMemoryStream objektumot. Ehhez közvetlenül egy bájtos adatfolyammal kell dolgoznia, amelyet aztán objektummá alakít át. Ez a módszer elsősorban teljesítménybeli okokból hasznos: Ha egy erőforrást bájtfolyamként kér le explicit objektum helyett, az javíthatja a teljesítményt.

A visszaadott erőforrás az aktuális szál felhasználói felületi kultúrájához van honosítva, amelyet a CultureInfo.CurrentUICulture tulajdonság határoz meg. Ha az erőforrás nincs az adott kultúrához honosítva, az erőforrás-kezelő tartalék szabályokkal tölt be egy megfelelő erőforrást. Ha nem található használható honosított erőforráskészlet, a ResourceManager az alapértelmezett kultúra erőforrásaira esik vissza. Ha az alapértelmezett kultúra erőforráskészlete nem található, a metódus MissingManifestResourceException kivételt eredményez, vagy ha az erőforráskészlet várhatóan egy műholdas szerelvényben található, MissingSatelliteAssemblyException kivételt. Ha az erőforrás-kezelő betölthet egy megfelelő erőforráskészletet, de nem talál egy namenevű erőforrást, a metódus nullad vissza.

A IgnoreCase tulajdonság azt határozza meg, hogy az name és az erőforrások neveinek összehasonlítása kis- és nagybetűk különbségét figyelmen kívül hagyja (alapértelmezett) vagy megkülönbözteti-e a kis- és nagybetűket.

A következőre érvényes:

GetStream(String, CultureInfo)

Forrás:
ResourceManager.cs
Forrás:
ResourceManager.cs
Forrás:
ResourceManager.cs
Forrás:
ResourceManager.cs
Forrás:
ResourceManager.cs

Fontos

Ez az API nem CLS-kompatibilis.

Egy nem felügyelt memóriastream objektumot ad vissza a megadott erőforrásból a megadott kultúrával.

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

Paraméterek

name
String

Egy erőforrás neve.

culture
CultureInfo

Az erőforrás-kereséshez használandó kultúra. Ha culture igen null, az aktuális szál kultúrája lesz használva.

Válaszok

Erőforrást jelképező nem felügyelt memóriastream objektum.

Attribútumok

Kivételek

A megadott erőforrás értéke nem MemoryStream objektum.

name az null.

Nem található használható erőforráskészlet, és nincsenek alapértelmezett erőforrások. A kivétel kezeléséről az osztálytéma "A MissingManifestResourceException és a MissingSatelliteAssemblyException kivételek kezelése" című szakaszában ResourceManager tájékozódhat.

Az alapértelmezett kultúra erőforrásai olyan műholdas szerelvényben találhatók, amely nem található. A kivétel kezeléséről az osztálytéma "A MissingManifestResourceException és a MissingSatelliteAssemblyException kivételek kezelése" című szakaszában ResourceManager tájékozódhat.

Megjegyzések

A GetStream metódus egy objektumként MemoryStream tárolt erőforrás nevét veszi fel, lekéri az Object erőforrás értékét, és visszaad egy UnmanagedMemoryStream objektumot. Ehhez közvetlenül egy bájtos adatfolyammal kell dolgoznia, amelyet aztán objektummá alakít át. Ez a módszer elsősorban teljesítménybeli okokból hasznos: Ha egy erőforrást bájtfolyamként kér le explicit objektum helyett, az javíthatja a teljesítményt.

A visszaadott erőforrás a cultureáltal megadott kultúrához, vagy a CultureInfo.CurrentUICulture tulajdonság által megadott kultúrához lesz honosítva, ha culturenull. Ha az erőforrás nincs az adott kultúrához honosítva, az erőforrás-kezelő tartalék szabályokkal tölt be egy megfelelő erőforrást. Ha nem található használható honosított erőforráskészlet, a ResourceManager az alapértelmezett kultúra erőforrásaira esik vissza. Ha az alapértelmezett kultúra erőforráskészlete nem található, a metódus MissingManifestResourceException kivételt eredményez, vagy ha az erőforráskészlet várhatóan egy műholdas szerelvényben található, MissingSatelliteAssemblyException kivételt. Ha az erőforrás-kezelő betölthet egy megfelelő erőforráskészletet, de nem talál egy namenevű erőforrást, a metódus nullad vissza.

A IgnoreCase tulajdonság azt határozza meg, hogy az name és az erőforrások neveinek összehasonlítása kis- és nagybetűk különbségét figyelmen kívül hagyja (alapértelmezett) vagy megkülönbözteti-e a kis- és nagybetűket.

A következőre érvényes: