ResourceManager.GetStream メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したリソースからアンマネージ メモリ ストリーム オブジェクトを返します。
オーバーロード
GetStream(String) |
指定したリソースからアンマネージ メモリ ストリーム オブジェクトを返します。 |
GetStream(String, CultureInfo) |
指定したカルチャを使用し、指定したリソースからアンマネージ メモリ ストリーム オブジェクトを返します。 |
GetStream(String)
重要
この 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 オブジェクトではありません。
name
が null
です。
使用できるリソースのセットが見つからず、既定のリソースもありません。 この例外の処理方法の詳細については、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 の場合は、 csc
を vbc
に変更し、さらにソース コード ファイルの拡張子を .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)
重要
この 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
リソース参照に使用するカルチャ。 culture
が null
の場合は、現在のスレッドのカルチャが使用されます。
戻り値
リソースを表すアンマネージ メモリ ストリーム オブジェクト。
- 属性
例外
指定されたリソースの値が MemoryStream オブジェクトではありません。
name
が null
です。
使用できるリソースのセットが見つからず、既定のリソースもありません。 この例外の処理方法の詳細については、ResourceManager クラスのトピックの MissingManifestResourceException 例外と MissingSatelliteAssemblyException 例外の処理に関するセクションを参照してください。
既定のカルチャのリソースがサテライト アセンブリに存在し、そのサテライト アセンブリが見つかりませんでした。 この例外の処理方法の詳細については、ResourceManager クラスのトピックの MissingManifestResourceException 例外と MissingSatelliteAssemblyException 例外の処理に関するセクションを参照してください。
注釈
メソッドは GetStream 、オブジェクトとして格納されているリソースの名前を MemoryStream 受け取り、リソースの値を Object 取得して、オブジェクトを UnmanagedMemoryStream 返します。 バイトストリームを直接操作し、オブジェクトに変換する必要があります。 このメソッドは、主にパフォーマンス上の理由から役立ちます。明示的なオブジェクトではなくバイト ストリームとしてリソースを取得すると、パフォーマンスが向上する可能性があります。
返されるリソースは、 でculture
指定されたカルチャの場合はローカライズされ、 が の場合culture
null
は プロパティで指定されたカルチャにCultureInfo.CurrentUICultureローカライズされます。 リソースがそのカルチャにローカライズされていない場合、リソース マネージャーはフォールバック ルールを使用して適切なリソースを読み込みます。 ローカライズされたリソースの使用可能なセットが見つからない場合、 ResourceManager は既定のカルチャのリソースにフォールバックします。 既定のカルチャのリソース セットが見つからない場合、メソッドは例外を MissingManifestResourceException スローするか、リソース セットがサテライト アセンブリに存在することが予想される場合は例外を MissingSatelliteAssemblyException スローします。 リソース マネージャーが適切なリソース セットを読み込むことができるが、 という名前 name
のリソースが見つからない場合、メソッドは を返します null
。
プロパティは IgnoreCase 、 とリソースの名前の name
比較で大文字と小文字が区別されない (既定) か、大文字と小文字が区別されるかを決定します。
適用対象
.NET