ResourceManager.GetStream Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca niezarządzany obiekt strumienia pamięci z określonego zasobu.
Przeciążenia
GetStream(String) |
Zwraca niezarządzany obiekt strumienia pamięci z określonego zasobu. |
GetStream(String, CultureInfo) |
Zwraca niezarządzany obiekt strumienia pamięci z określonego zasobu przy użyciu określonej kultury. |
GetStream(String)
- Źródło:
- ResourceManager.cs
- Źródło:
- ResourceManager.cs
- Źródło:
- ResourceManager.cs
Ważne
Ten interfejs API nie jest zgodny ze specyfikacją CLS.
Zwraca niezarządzany obiekt strumienia pamięci z określonego zasobu.
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
Parametry
- name
- String
Nazwa zasobu.
Zwraca
Niezarządzany obiekt strumienia pamięci reprezentujący zasób.
- Atrybuty
Wyjątki
Wartość określonego zasobu nie jest obiektem MemoryStream .
name
to null
.
Nie można odnaleźć zestawu zasobów do użycia i nie ma żadnych domyślnych zasobów. Aby uzyskać informacje na temat obsługi tego wyjątku, zobacz sekcję "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" (Obsługa wyjątków MissingManifestResourceException i MissingSatelliteAssemblyException) w ResourceManager temacie klasy.
Zasoby kultury domyślnej znajdują się w zestawie satelitarnym, którego nie można odnaleźć. Aby uzyskać informacje na temat obsługi tego wyjątku, zobacz sekcję "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" (Obsługa wyjątków MissingManifestResourceException i MissingSatelliteAssemblyException) w ResourceManager temacie klasy.
Przykłady
W poniższym przykładzie użyto GetStream(String) metody , aby pobrać mapę bitową używaną w oknie powitalnym otwierania aplikacji. Poniższy kod źródłowy z pliku o nazwie CreateResources.cs (dla języka C#) lub CreateResources.vb (dla języka Visual Basic) generuje plik resx o nazwie AppResources.resx zawierający obraz serializowany. W takim przypadku obraz jest ładowany z pliku o nazwie SplashScreen.jpg; Możesz zmodyfikować nazwę pliku, aby zastąpić własny obraz.
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
Poniższy kod z pliku o nazwie GetStream.cs (dla języka C#) lub GetStream.vb (dla języka Visual Basic) następnie pobiera zasób i wyświetla obraz w kontrolce 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
Aby skompilować przykład języka C#, możesz użyć następującego pliku wsadowego. W programie Visual Basic zmień wartość csc
na vbc
, a następnie zmień rozszerzenie pliku kodu źródłowego z .cs
na .vb
.
csc CreateResources.cs
CreateResources
resgen AppResources.resx
csc GetStream.cs /resource:AppResources.resources
Uwagi
Metoda GetStream przyjmuje nazwę zasobu przechowywanego MemoryStream jako obiekt, pobiera wartość Object zasobu i zwraca UnmanagedMemoryStream obiekt. Wymaga to bezpośredniej pracy ze strumieniem bajtów, który następnie jest konwertowany na obiekt. Ta metoda jest przydatna głównie ze względów wydajności: pobieranie zasobu jako strumienia bajtów zamiast jawnego obiektu może zwiększyć wydajność.
Zwrócony zasób jest zlokalizowany dla kultury interfejsu użytkownika bieżącego wątku CultureInfo.CurrentUICulture , który jest zdefiniowany przez właściwość . Jeśli zasób nie jest zlokalizowany dla tej kultury, menedżer zasobów używa reguł rezerwowych do załadowania odpowiedniego zasobu. Jeśli nie można odnaleźć zestawu zlokalizowanych zasobów, ResourceManager zasoby domyślnej kultury wracają do zasobów kultury domyślnej. Jeśli nie można odnaleźć zestawu zasobów dla kultury domyślnej, metoda zgłasza MissingManifestResourceException wyjątek lub, jeśli zestaw zasobów ma znajdować się w zestawie satelitarnym MissingSatelliteAssemblyException , wyjątek. Jeśli menedżer zasobów może załadować odpowiedni zestaw zasobów, ale nie może odnaleźć zasobu o nazwie name
, metoda zwraca null
wartość .
Właściwość IgnoreCase określa, czy porównanie name
nazw zasobów jest bez uwzględniania wielkości liter (wartość domyślna) lub wielkość liter.
Dotyczy
GetStream(String, CultureInfo)
- Źródło:
- ResourceManager.cs
- Źródło:
- ResourceManager.cs
- Źródło:
- ResourceManager.cs
Ważne
Ten interfejs API nie jest zgodny ze specyfikacją CLS.
Zwraca niezarządzany obiekt strumienia pamięci z określonego zasobu przy użyciu określonej kultury.
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
Parametry
- name
- String
Nazwa zasobu.
- culture
- CultureInfo
Kultura używana do wyszukiwania zasobów. Jeśli culture
jest to null
, jest używana kultura bieżącego wątku.
Zwraca
Niezarządzany obiekt strumienia pamięci reprezentujący zasób.
- Atrybuty
Wyjątki
Wartość określonego zasobu nie jest obiektem MemoryStream .
name
to null
.
Nie można odnaleźć zestawu zasobów do użycia i nie ma żadnych domyślnych zasobów. Aby uzyskać informacje na temat obsługi tego wyjątku, zobacz sekcję "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" (Obsługa wyjątków MissingManifestResourceException i MissingSatelliteAssemblyException) w ResourceManager temacie klasy.
Zasoby kultury domyślnej znajdują się w zestawie satelitarnym, którego nie można odnaleźć. Aby uzyskać informacje na temat obsługi tego wyjątku, zobacz sekcję "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" (Obsługa wyjątków MissingManifestResourceException i MissingSatelliteAssemblyException) w ResourceManager temacie klasy.
Uwagi
Metoda GetStream przyjmuje nazwę zasobu przechowywanego MemoryStream jako obiekt, pobiera wartość Object zasobu i zwraca UnmanagedMemoryStream obiekt. Wymaga to bezpośredniej pracy ze strumieniem bajtów, który następnie jest konwertowany na obiekt. Ta metoda jest przydatna głównie ze względów wydajności: pobieranie zasobu jako strumienia bajtów zamiast jawnego obiektu może zwiększyć wydajność.
Zwrócony zasób jest zlokalizowany dla kultury określonej przez culture
metodę lub dla kultury określonej przez CultureInfo.CurrentUICulture właściwość , jeśli culture
jest null
to . Jeśli zasób nie jest zlokalizowany dla tej kultury, menedżer zasobów używa reguł rezerwowych do załadowania odpowiedniego zasobu. Jeśli nie można odnaleźć zestawu zlokalizowanych zasobów, ResourceManager zasoby domyślnej kultury wracają do zasobów kultury domyślnej. Jeśli nie można odnaleźć zestawu zasobów dla kultury domyślnej, metoda zgłasza MissingManifestResourceException wyjątek lub, jeśli zestaw zasobów ma znajdować się w zestawie satelitarnym MissingSatelliteAssemblyException , wyjątek. Jeśli menedżer zasobów może załadować odpowiedni zestaw zasobów, ale nie może odnaleźć zasobu o nazwie name
, metoda zwraca null
wartość .
Właściwość IgnoreCase określa, czy porównanie name
nazw zasobów jest bez uwzględniania wielkości liter (wartość domyślna) lub wielkość liter.