英語で読む

次の方法で共有


ResourceManager.GetStream メソッド

定義

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

オーバーロード

GetStream(String)

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

GetStream(String, CultureInfo)

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

GetStream(String)

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

重要

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

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

C#
public System.IO.UnmanagedMemoryStream? GetStream (string name);
C#
public System.IO.UnmanagedMemoryStream GetStream (string name);
C#
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public System.IO.UnmanagedMemoryStream GetStream (string name);
C#
[System.Runtime.InteropServices.ComVisible(false)]
public System.IO.UnmanagedMemoryStream GetStream (string name);

パラメーター

name
String

リソースの名前。

戻り値

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

属性

例外

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

namenullです。

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

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

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

C#
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();
   }
}

次のコードは、GetStream.cs (C# の場合) または GetStream.vb (Visual Basic の場合) という名前のファイルからリソースを取得し、System.Windows.Forms.PictureBox コントロールに画像を表示します。

C#
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();
   }
}

次のバッチ ファイルを使用して、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 の比較で大文字と小文字が区別されない (既定) か、大文字と小文字が区別されるかを決定します。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

GetStream(String, CultureInfo)

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

重要

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

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

C#
public System.IO.UnmanagedMemoryStream? GetStream (string name, System.Globalization.CultureInfo? culture);
C#
public System.IO.UnmanagedMemoryStream GetStream (string name, System.Globalization.CultureInfo culture);
C#
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public System.IO.UnmanagedMemoryStream GetStream (string name, System.Globalization.CultureInfo culture);
C#
[System.Runtime.InteropServices.ComVisible(false)]
public System.IO.UnmanagedMemoryStream GetStream (string name, System.Globalization.CultureInfo culture);

パラメーター

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 の比較で大文字と小文字が区別されない (既定) か、大文字と小文字が区別されるかを決定します。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1