Udostępnij za pośrednictwem


ResourceManager.GetStream Metoda

Definicja

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 nullwartość .

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 culturemetodę lub dla kultury określonej przez CultureInfo.CurrentUICulture właściwość , jeśli culture jest nullto . 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 nullwartość .

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