ResourceManager.GetStream Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce un oggetto flusso di memoria non gestito da una risorsa specificata.
Overload
GetStream(String) |
Restituisce un oggetto flusso di memoria non gestito dalla risorsa specificata. |
GetStream(String, CultureInfo) |
Restituisce un oggetto flusso di memoria non gestito dalla risorsa specificata, utilizzando 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 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 flusso di memoria non gestito che rappresenta una risorsa.
- Attributi
Eccezioni
Il valore della risorsa specificata non è un oggetto MemoryStream.
name
è null
.
Non viene trovato alcun set utilizzabile di risorse e non sono presenti risorse predefinite. Per informazioni su come gestire questa eccezione, vedere la sezione "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" nell'argomento della classe ResourceManager.
Le risorse delle impostazioni cultura predefinite risiedono in un assembly satellite che non è stato trovato. Per informazioni su come gestire questa eccezione, vedere la sezione "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" nell'argomento della classe ResourceManager.
Esempio
L'esempio seguente usa il metodo GetStream(String) per recuperare una bitmap usata 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 del file in modo da sostituire la propria immagine.
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 controllo 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
È possibile usare il file batch seguente per compilare l'esempio C#. Per Visual Basic modificare csc
in vbc
e modificare l'estensione del file di codice sorgente da .cs
a .vb
.
csc CreateResources.cs
CreateResources
resgen AppResources.resx
csc GetStream.cs /resource:AppResources.resources
Commenti
Il metodo GetStream accetta il nome di una risorsa archiviata come oggetto MemoryStream, ottiene il valore della risorsa Object e restituisce un oggetto UnmanagedMemoryStream. È necessario lavorare direttamente con 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 proprietà CultureInfo.CurrentUICulture. 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, il ResourceManager esegue il 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 oppure, se si prevede che il set di risorse risieda 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 proprietà IgnoreCase determina se il confronto di 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, utilizzando 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
, vengono usate le impostazioni cultura per il thread corrente.
Restituisce
Oggetto flusso di memoria non gestito che rappresenta una risorsa.
- Attributi
Eccezioni
Il valore della risorsa specificata non è un oggetto MemoryStream.
name
è null
.
Non viene trovato alcun set utilizzabile di risorse e non sono presenti risorse predefinite. Per informazioni su come gestire questa eccezione, vedere la sezione "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" nell'argomento della classe ResourceManager.
Le risorse delle impostazioni cultura predefinite risiedono in un assembly satellite che non è stato trovato. Per informazioni su come gestire questa eccezione, vedere la sezione "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" nell'argomento della classe ResourceManager.
Commenti
Il metodo GetStream accetta il nome di una risorsa archiviata come oggetto MemoryStream, ottiene il valore della risorsa Object e restituisce un oggetto UnmanagedMemoryStream. È necessario lavorare direttamente con 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 culture
o per le impostazioni cultura specificate dalla proprietà CultureInfo.CurrentUICulture 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, il ResourceManager esegue il 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 oppure, se si prevede che il set di risorse risieda 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 proprietà IgnoreCase determina se il confronto di name
con i nomi delle risorse non fa distinzione tra maiuscole e minuscole (impostazione predefinita) o fa distinzione tra maiuscole e minuscole.