Aracılığıyla paylaş


ResourceManager.GetStream Yöntem

Tanım

Belirtilen kaynaktan yönetilmeyen bir bellek akışı nesnesi döndürür.

Aşırı Yüklemeler

GetStream(String)

Belirtilen kaynaktan yönetilmeyen bir bellek akışı nesnesi döndürür.

GetStream(String, CultureInfo)

Belirtilen kültürü kullanarak belirtilen kaynaktan yönetilmeyen bir bellek akışı nesnesi döndürür.

GetStream(String)

Kaynak:
ResourceManager.cs
Kaynak:
ResourceManager.cs
Kaynak:
ResourceManager.cs

Önemli

Bu API, CLS uyumlu değildir.

Belirtilen kaynaktan yönetilmeyen bir bellek akışı nesnesi döndürür.

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

Parametreler

name
String

Kaynağın adı.

Döndürülenler

Bir kaynağı temsil eden yönetilmeyen bellek akışı nesnesi.

Öznitelikler

Özel durumlar

Belirtilen kaynağın değeri bir MemoryStream nesne değil.

name, null değeridir.

Kullanılabilir kaynak kümesi bulunamadı ve varsayılan kaynak yok. Bu özel durumu işleme hakkında bilgi için sınıf konusunun "MissingManifestResourceException ve MissingSatelliteAssemblyException Özel Durumlarını İşleme" bölümüne bakın ResourceManager .

Varsayılan kültürün kaynakları, bulunamayan bir uydu derlemesinde bulunur. Bu özel durumu işleme hakkında bilgi için sınıf konusunun "MissingManifestResourceException ve MissingSatelliteAssemblyException Özel Durumlarını İşleme" bölümüne bakın ResourceManager .

Örnekler

Aşağıdaki örnek, bir uygulamanın açılış giriş penceresinde kullanılan bit eşlemi almak için yöntemini kullanır GetStream(String) . CreateResources.cs (C#için) veya CreateResources.vb (Visual Basic için) adlı bir dosyadan alınan aşağıdaki kaynak kod, serileştirilmiş görüntüyü içeren AppResources.resx adlı bir .resx dosyası oluşturur. Bu durumda görüntü, SplashScreen.jpg adlı bir dosyadan yüklenir; dosya adını kendi görüntünüzün yerine geçecek şekilde değiştirebilirsiniz.

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

GetStream.cs (C#için) veya GetStream.vb (Visual Basic için) adlı bir dosyadan aşağıdaki kod, kaynağı alır ve görüntüyü bir System.Windows.Forms.PictureBox denetimde görüntüler.

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

C# örneğini oluşturmak için aşağıdaki toplu iş dosyasını kullanabilirsiniz. Visual Basic için olarak değiştirin cscvbcve kaynak kod dosyasının uzantısını olarak .cs.vbdeğiştirin.

csc CreateResources.cs
CreateResources

resgen AppResources.resx

csc GetStream.cs /resource:AppResources.resources

Açıklamalar

GetStream yöntemi, nesne olarak MemoryStream depolanan bir kaynağın adını alır, kaynağın Object değerini alır ve bir UnmanagedMemoryStream nesnesi döndürür. Daha sonra bir nesneye dönüştürdüğünüz bir bayt akışıyla doğrudan çalışmanızı gerektirir. Bu yöntem öncelikle performans nedenleriyle kullanışlıdır: Açık bir nesne yerine bir kaynağı bayt akışı olarak almak performansı artırabilir.

Döndürülen kaynak, özelliği tarafından CultureInfo.CurrentUICulture tanımlanan geçerli iş parçacığının ui kültürü için yerelleştirilir. Kaynak bu kültür için yerelleştirilmemişse, kaynak yöneticisi uygun bir kaynağı yüklemek için geri dönüş kurallarını kullanır. Kullanılabilir yerelleştirilmiş kaynak kümesi bulunmazsa, ResourceManager varsayılan kültürün kaynaklarına geri döner. Varsayılan kültür için bir kaynak kümesi bulunamazsa, yöntem bir MissingManifestResourceException özel durum oluşturur veya kaynak kümesinin bir uydu derlemesinde bulunması bekleniyorsa bir MissingSatelliteAssemblyException özel durum oluşturur. Kaynak yöneticisi uygun bir kaynak kümesi yükleyebiliyor ancak adlı namebir kaynağı bulamıyorsa, yöntemi döndürür null.

IgnoreCase özelliği, öğesinin kaynak adlarıyla karşılaştırılmasının name büyük/küçük harfe duyarlı (varsayılan) veya büyük/küçük harfe duyarlı olup olmadığını belirler.

Şunlara uygulanır

GetStream(String, CultureInfo)

Kaynak:
ResourceManager.cs
Kaynak:
ResourceManager.cs
Kaynak:
ResourceManager.cs

Önemli

Bu API, CLS uyumlu değildir.

Belirtilen kültürü kullanarak belirtilen kaynaktan yönetilmeyen bir bellek akışı nesnesi döndürür.

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

Parametreler

name
String

Kaynağın adı.

culture
CultureInfo

Kaynak arama için kullanılacak kültür. ise culturenull, geçerli iş parçacığının kültürü kullanılır.

Döndürülenler

Bir kaynağı temsil eden yönetilmeyen bellek akışı nesnesi.

Öznitelikler

Özel durumlar

Belirtilen kaynağın değeri bir MemoryStream nesne değil.

name, null değeridir.

Kullanılabilir kaynak kümesi bulunamadı ve varsayılan kaynak yok. Bu özel durumu işleme hakkında bilgi için sınıf konusunun "MissingManifestResourceException ve MissingSatelliteAssemblyException Özel Durumlarını İşleme" bölümüne bakın ResourceManager .

Varsayılan kültürün kaynakları, bulunamayan bir uydu derlemesinde bulunur. Bu özel durumu işleme hakkında bilgi için sınıf konusunun "MissingManifestResourceException ve MissingSatelliteAssemblyException Özel Durumlarını İşleme" bölümüne bakın ResourceManager .

Açıklamalar

GetStream yöntemi, nesne olarak MemoryStream depolanan bir kaynağın adını alır, kaynağın Object değerini alır ve bir UnmanagedMemoryStream nesnesi döndürür. Daha sonra bir nesneye dönüştürdüğünüz bir bayt akışıyla doğrudan çalışmanızı gerektirir. Bu yöntem öncelikle performans nedenleriyle kullanışlıdır: Açık bir nesne yerine bir kaynağı bayt akışı olarak almak performansı artırabilir.

Döndürülen kaynak, tarafından culturebelirtilen kültür için veya ise culturenullözelliği tarafından CultureInfo.CurrentUICulture belirtilen kültür için yerelleştirilir. Kaynak bu kültür için yerelleştirilmemişse, kaynak yöneticisi uygun bir kaynağı yüklemek için geri dönüş kurallarını kullanır. Kullanılabilir yerelleştirilmiş kaynak kümesi bulunmazsa, ResourceManager varsayılan kültürün kaynaklarına geri döner. Varsayılan kültür için bir kaynak kümesi bulunamazsa, yöntem bir MissingManifestResourceException özel durum oluşturur veya kaynak kümesinin bir uydu derlemesinde bulunması bekleniyorsa bir MissingSatelliteAssemblyException özel durum oluşturur. Kaynak yöneticisi uygun bir kaynak kümesi yükleyebiliyor ancak adlı namebir kaynağı bulamıyorsa, yöntemi döndürür null.

IgnoreCase özelliği, öğesinin kaynak adlarıyla karşılaştırılmasının name büyük/küçük harfe duyarlı (varsayılan) veya büyük/küçük harfe duyarlı olup olmadığını belirler.

Şunlara uygulanır