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

Name Description
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
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 bir bellek akışı nesnesi.

Öznitelikler

Özel durumlar

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

name, null'e eşittir.

Kullanılabilir kaynak kümesi bulunamadı ve varsayılan kaynak yok. Bu özel durumun nasıl işleneceğini öğrenmek için sınıf konusunun "MissingManifestResourceException ve MissingSatelliteAssemblyException Özel Durumlarını İşleme" bölümüne ResourceManager bakın.

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

Örnekler

Aşağıdaki örnek, bir uygulamanın açılış penceresinde kullanılan bir bitmap'i almak için GetStream(String) yöntemini kullanır. CreateResources.cs (C#için) veya CreateResources.vb (Visual Basic için) adlı bir dosyadan 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.jpgadlı 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 cscvbcolarak değiştirin ve kaynak kod dosyasının uzantısını .cs.vbolarak değ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 nesne döndürür. Bunun için doğrudan bir bayt akışıyla çalışmanız ve ardından bir nesneye dönüştürmeniz gerekir. Bu yöntem öncelikle performans nedenleriyle kullanışlıdır: Açık bir nesne yerine bir kaynağı bayt akışı olarak almak performansı geliştirebilir.

Döndürülen kaynak, CultureInfo.CurrentUICulture özelliği tarafından tanımlanan geçerli iş parçacığının kullanıcı arabirimi kültürüne göre yerelleştirilmiştir. 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öntemi 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ükleyebiliyorsa ancak nameadlı bir kaynağı bulamıyorsa, yöntemi nulldöndürür.

IgnoreCase özelliği, name kaynak adlarıyla karşılaştırılmasının, büyük/küçük harfe duyarsız (varsayılan) mı yoksa büyük/küçük harfe duyarlı mı olduğunu belirler.

Şunlara uygulanır

GetStream(String, CultureInfo)

Kaynak:
ResourceManager.cs
Kaynak:
ResourceManager.cs
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 bir bellek akışı nesnesi.

Öznitelikler

Özel durumlar

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

name, null'e eşittir.

Kullanılabilir kaynak kümesi bulunamadı ve varsayılan kaynak yok. Bu özel durumun nasıl işleneceğini öğrenmek için sınıf konusunun "MissingManifestResourceException ve MissingSatelliteAssemblyException Özel Durumlarını İşleme" bölümüne ResourceManager bakın.

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

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 nesne döndürür. Bunun için doğrudan bir bayt akışıyla çalışmanız ve ardından bir nesneye dönüştürmeniz gerekir. Bu yöntem öncelikle performans nedenleriyle kullanışlıdır: Açık bir nesne yerine bir kaynağı bayt akışı olarak almak performansı geliştirebilir.

Döndürülen kaynak, culture tarafından belirtilen kültür veya CultureInfo.CurrentUICultureculture ise null özelliği tarafından 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öntemi 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ükleyebiliyorsa ancak nameadlı bir kaynağı bulamıyorsa, yöntemi nulldöndürür.

IgnoreCase özelliği, name kaynak adlarıyla karşılaştırılmasının, büyük/küçük harfe duyarsız (varsayılan) mı yoksa büyük/küçük harfe duyarlı mı olduğunu belirler.

Şunlara uygulanır