次の方法で共有


ResourceManager.GetStream メソッド

定義

指定したリソースからアンマネージ メモリ ストリーム オブジェクトを返します。

オーバーロード

GetStream(String)

指定したリソースからアンマネージ メモリ ストリーム オブジェクトを返します。

GetStream(String, CultureInfo)

指定したカルチャを使用して、指定したリソースからアンマネージ メモリ ストリーム オブジェクトを返します。

GetStream(String)

ソース:
ResourceManager.cs
ソース:
ResourceManager.cs
ソース:
ResourceManager.cs

重要

この API は CLS 準拠ではありません。

指定したリソースからアンマネージ メモリ ストリーム オブジェクトを返します。

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

パラメーター

name
String

リソースの名前。

戻り値

リソースを表すアンマネージ メモリ ストリーム オブジェクト。

属性

例外

指定したリソースの値が MemoryStream オブジェクトではありません。

namenullです。

使用可能な一連のリソースが見つからないため、既定のリソースはありません。 この例外を処理する方法については、ResourceManager クラストピックの「MissingManifestResourceException と MissingSatelliteAssemblyException 例外の処理」セクションを参照してください。

既定のカルチャのリソースは、見つからなかったサテライト アセンブリに存在します。 この例外を処理する方法については、ResourceManager クラストピックの「MissingManifestResourceException と MissingSatelliteAssemblyException 例外の処理」セクションを参照してください。

次の例では、GetStream(String) メソッドを使用して、アプリの開始スプラッシュ ウィンドウで使用されるビットマップを取得します。 CreateResources.cs (C# の場合) または CreateResources.vb (Visual Basic の場合) という名前のファイルの次のソース コードは、シリアル化されたイメージを含む AppResources.resx という名前の .resx ファイルを生成します。 この場合、イメージは SplashScreen.jpgという名前のファイルから読み込まれます。ファイル名を変更して、独自のイメージに置き換えることができます。

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# の場合) または GetStream.vb (Visual Basic の場合) という名前のファイルからリソースを取得し、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

次のバッチ ファイルを使用して、C# の例をビルドできます。 Visual Basic の場合は、cscvbcに変更し、ソース コード ファイルの拡張子を .cs から .vbに変更します。

csc CreateResources.cs
CreateResources

resgen AppResources.resx

csc GetStream.cs /resource:AppResources.resources

注釈

GetStream メソッドは、MemoryStream オブジェクトとして格納されているリソースの名前を取得し、Object リソースの値を取得して、UnmanagedMemoryStream オブジェクトを返します。 バイト ストリームを直接操作し、オブジェクトに変換する必要があります。 このメソッドは、主にパフォーマンス上の理由から役立ちます。明示的なオブジェクトではなく、バイト ストリームとしてリソースを取得すると、パフォーマンスが向上する可能性があります。

返されるリソースは、現在のスレッドの UI カルチャ用にローカライズされ、CultureInfo.CurrentUICulture プロパティによって定義されます。 リソースがそのカルチャにローカライズされていない場合、リソース マネージャーはフォールバック ルールを使用して適切なリソースを読み込みます。 ローカライズされたリソースの使用可能なセットが見つからない場合、ResourceManager は既定のカルチャのリソースにフォールバックします。 既定のカルチャのリソース セットが見つからない場合、メソッドは MissingManifestResourceException 例外をスローするか、リソース セットがサテライト アセンブリに存在することが予想される場合は、MissingSatelliteAssemblyException 例外をスローします。 リソース マネージャーが適切なリソース セットを読み込むことができるが、nameという名前のリソースが見つからない場合、メソッドは nullを返します。

IgnoreCase プロパティは、リソースの名前と name の比較で大文字と小文字が区別されない (既定) か、大文字と小文字が区別されるかを決定します。

適用対象

GetStream(String, CultureInfo)

ソース:
ResourceManager.cs
ソース:
ResourceManager.cs
ソース:
ResourceManager.cs

重要

この API は CLS 準拠ではありません。

指定したカルチャを使用して、指定したリソースからアンマネージ メモリ ストリーム オブジェクトを返します。

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

パラメーター

name
String

リソースの名前。

culture
CultureInfo

リソース参照に使用するカルチャ。 culturenull場合は、現在のスレッドのカルチャが使用されます。

戻り値

リソースを表すアンマネージ メモリ ストリーム オブジェクト。

属性

例外

指定したリソースの値が MemoryStream オブジェクトではありません。

namenullです。

使用可能な一連のリソースが見つからないため、既定のリソースはありません。 この例外を処理する方法については、ResourceManager クラストピックの「MissingManifestResourceException と MissingSatelliteAssemblyException 例外の処理」セクションを参照してください。

既定のカルチャのリソースは、見つからなかったサテライト アセンブリに存在します。 この例外を処理する方法については、ResourceManager クラストピックの「MissingManifestResourceException と MissingSatelliteAssemblyException 例外の処理」セクションを参照してください。

注釈

GetStream メソッドは、MemoryStream オブジェクトとして格納されているリソースの名前を取得し、Object リソースの値を取得して、UnmanagedMemoryStream オブジェクトを返します。 バイト ストリームを直接操作し、オブジェクトに変換する必要があります。 このメソッドは、主にパフォーマンス上の理由から役立ちます。明示的なオブジェクトではなく、バイト ストリームとしてリソースを取得すると、パフォーマンスが向上する可能性があります。

返されるリソースは、cultureで指定されたカルチャ、または culturenullされている場合は、CultureInfo.CurrentUICulture プロパティで指定されたカルチャ用にローカライズされます。 リソースがそのカルチャにローカライズされていない場合、リソース マネージャーはフォールバック ルールを使用して適切なリソースを読み込みます。 ローカライズされたリソースの使用可能なセットが見つからない場合、ResourceManager は既定のカルチャのリソースにフォールバックします。 既定のカルチャのリソース セットが見つからない場合、メソッドは MissingManifestResourceException 例外をスローするか、リソース セットがサテライト アセンブリに存在することが予想される場合は、MissingSatelliteAssemblyException 例外をスローします。 リソース マネージャーが適切なリソース セットを読み込むことができるが、nameという名前のリソースが見つからない場合、メソッドは nullを返します。

IgnoreCase プロパティは、リソースの名前と name の比較で大文字と小文字が区別されない (既定) か、大文字と小文字が区別されるかを決定します。

適用対象