Condividi tramite


ResourceManager.GetStream Metodo

Definizione

Restituisce un oggetto di flusso di memoria non gestito da una risorsa specificata.

Overload

GetStream(String)

Restituisce un oggetto di flusso di memoria non gestito dalla risorsa specificata.

GetStream(String, CultureInfo)

Restituisce un oggetto flusso di memoria non gestito dalla risorsa specificata usando le impostazioni cultura specificate.

GetStream(String)

Origine:
ResourceManager.cs
Origine:
ResourceManager.cs
Origine:
ResourceManager.cs

Importante

Questa API non è conforme a CLS.

Restituisce un oggetto di flusso di memoria non gestito dalla risorsa specificata.

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

Parametri

name
String

Nome di una risorsa.

Restituisce

Oggetto non gestito del flusso di memoria che rappresenta una risorsa.

Attributi

Eccezioni

Il valore della risorsa specificata non è un oggetto MemoryStream.

name è null.

Non sono stati individuati set di risorse utilizzabili e non esistono risorse predefinite. Per informazioni su come gestire questa eccezione, vedere la sezione sulla gestione di MissingSatelliteAssemblyException e MissingManifestResourceException nell'argomento relativo alla classe ResourceManager.

Le risorse delle impostazioni cultura predefinite si trovano in un assembly satellite che non è stato trovato. Per informazioni su come gestire questa eccezione, vedere la sezione sulla gestione di MissingSatelliteAssemblyException e MissingManifestResourceException nell'argomento relativo alla classe ResourceManager.

Esempio

Nell'esempio seguente viene usato il metodo GetStream(String) per recuperare una bitmap visualizzata nella finestra iniziale di apertura di un'app. Il codice sorgente seguente da un file denominato CreateResources.cs (per C#) o CreateResources.vb (per Visual Basic) genera un file resx denominato AppResources.resx che contiene l'immagine serializzata. In questo caso, l'immagine viene caricata da un file denominato SplashScreen.jpg. È possibile modificare il nome per sostituire il file con un'immagine personalizzata.

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

Il codice seguente da un file denominato GetStream.cs (per C#) o GetStream.vb (per Visual Basic) recupera quindi la risorsa e visualizza l'immagine in un System.Windows.Forms.PictureBox controllo .

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

È possibile usare il file batch seguente per compilare l'esempio in C#. Per Visual Basic, sostituire csc con vbce modificare l'estensione del file del codice sorgente da .cs a .vb.

csc CreateResources.cs
CreateResources

resgen AppResources.resx

csc GetStream.cs /resource:AppResources.resources

Commenti

Il GetStream metodo accetta il nome di una risorsa archiviata come MemoryStream oggetto , ottiene il valore della Object risorsa e restituisce un UnmanagedMemoryStream oggetto . È necessario usare direttamente un flusso di byte, che viene quindi convertito in un oggetto . Questo metodo è utile principalmente per motivi di prestazioni: il recupero di una risorsa come flusso di byte anziché un oggetto esplicito può migliorare le prestazioni.

La risorsa restituita viene localizzata per le impostazioni cultura dell'interfaccia utente del thread corrente, definito dalla CultureInfo.CurrentUICulture proprietà . Se la risorsa non è localizzata per tali impostazioni cultura, Gestione risorse usa regole di fallback per caricare una risorsa appropriata. Se non viene trovato alcun set utilizzabile di risorse localizzate, viene eseguito il ResourceManager fallback sulle risorse delle impostazioni cultura predefinite. Se non viene trovato un set di risorse per le impostazioni cultura predefinite, il metodo genera un'eccezione MissingManifestResourceException o, se il set di risorse deve risiedere in un assembly satellite, un'eccezione MissingSatelliteAssemblyException . Se resource manager può caricare un set di risorse appropriato ma non riesce a trovare una risorsa denominata name, il metodo restituisce null.

La IgnoreCase proprietà determina se il confronto tra name con i nomi delle risorse non fa distinzione tra maiuscole e minuscole (impostazione predefinita) o fa distinzione tra maiuscole e minuscole.

Si applica a

GetStream(String, CultureInfo)

Origine:
ResourceManager.cs
Origine:
ResourceManager.cs
Origine:
ResourceManager.cs

Importante

Questa API non è conforme a CLS.

Restituisce un oggetto flusso di memoria non gestito dalla risorsa specificata usando le impostazioni cultura specificate.

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

Parametri

name
String

Nome di una risorsa.

culture
CultureInfo

Impostazioni cultura da usare per la ricerca delle risorse. Se culture è null, verranno usate le impostazioni cultura del thread corrente.

Restituisce

Oggetto non gestito del flusso di memoria che rappresenta una risorsa.

Attributi

Eccezioni

Il valore della risorsa specificata non è un oggetto MemoryStream.

name è null.

Non sono stati individuati set di risorse utilizzabili e non esistono risorse predefinite. Per informazioni su come gestire questa eccezione, vedere la sezione sulla gestione di MissingSatelliteAssemblyException e MissingManifestResourceException nell'argomento relativo alla classe ResourceManager.

Le risorse delle impostazioni cultura predefinite si trovano in un assembly satellite che non è stato trovato. Per informazioni su come gestire questa eccezione, vedere la sezione sulla gestione di MissingSatelliteAssemblyException e MissingManifestResourceException nell'argomento relativo alla classe ResourceManager.

Commenti

Il GetStream metodo accetta il nome di una risorsa archiviata come MemoryStream oggetto , ottiene il valore della Object risorsa e restituisce un UnmanagedMemoryStream oggetto . È necessario usare direttamente un flusso di byte, che viene quindi convertito in un oggetto . Questo metodo è utile principalmente per motivi di prestazioni: il recupero di una risorsa come flusso di byte anziché un oggetto esplicito può migliorare le prestazioni.

La risorsa restituita viene localizzata per le impostazioni cultura specificate da cultureo per le impostazioni cultura specificate dalla CultureInfo.CurrentUICulture proprietà se culture è null. Se la risorsa non è localizzata per tali impostazioni cultura, Gestione risorse usa regole di fallback per caricare una risorsa appropriata. Se non viene trovato alcun set utilizzabile di risorse localizzate, viene eseguito il ResourceManager fallback sulle risorse delle impostazioni cultura predefinite. Se non viene trovato un set di risorse per le impostazioni cultura predefinite, il metodo genera un'eccezione MissingManifestResourceException o, se il set di risorse deve risiedere in un assembly satellite, un'eccezione MissingSatelliteAssemblyException . Se resource manager può caricare un set di risorse appropriato ma non riesce a trovare una risorsa denominata name, il metodo restituisce null.

La IgnoreCase proprietà determina se il confronto tra name con i nomi delle risorse non fa distinzione tra maiuscole e minuscole (impostazione predefinita) o fa distinzione tra maiuscole e minuscole.

Si applica a