次の方法で共有


ResourceReader コンストラクター

定義

ResourceReader クラスの新しいインスタンスを初期化します。

オーバーロード

ResourceReader(Stream)

指定したストリーム用の ResourceReader クラスの新しいインスタンスを初期化します。

ResourceReader(String)

リソース ファイルを指定して ResourceReader クラスの新しいインスタンスを初期化します。

注釈

> [!重要] > 信頼されていないデータでこのオブジェクトのインスタンスを使用すると、セキュリティ上のリスクがあります。 このオブジェクトは信頼されたデータでのみ使用してください。 詳細については、「 すべての入力を検証する」を参照してください。

ResourceReader(Stream)

ソース:
ResourceReader.cs
ソース:
ResourceReader.cs
ソース:
ResourceReader.cs

指定したストリーム用の ResourceReader クラスの新しいインスタンスを初期化します。

public:
 ResourceReader(System::IO::Stream ^ stream);
public ResourceReader (System.IO.Stream stream);
[System.Security.SecurityCritical]
public ResourceReader (System.IO.Stream stream);
new System.Resources.ResourceReader : System.IO.Stream -> System.Resources.ResourceReader
[<System.Security.SecurityCritical>]
new System.Resources.ResourceReader : System.IO.Stream -> System.Resources.ResourceReader
Public Sub New (stream As Stream)

パラメーター

stream
Stream

リソースを読み取る入力ストリーム。

属性

例外

stream パラメーターは読み取り可能ではありません。

stream パラメーターが null です。

stream にアクセスしているときに、I/O エラーが発生しました。

このセクションの例では、 という名前 PatientForm.txt の次の .txt ファイルを使用して、アプリケーションで使用されるリソースを定義します。

Title="Top Pet Animal Clinic"
Label1="Patient Number:"
Label2="Pet Name:"
Label3="Species:"
Label4="Breed:"
Label5="Date of Birth:"
Label6="Age:"
Label7="Owner:"
Label8="Address:"
Label9="Home Phone:"
Label10="Work Phone:"
Label11="Mobile Phone:"

次のコマンドを発行して、.txt ファイルを .resources ファイルにコンパイルできます。

resgen PatientForm.txt

次の例では、アプリケーションの実行可能コードを含むアセンブリにリソース ファイルが埋め込まれていることを前提としています。 現在実行中のアセンブリから という名前 PatientForm.resources のリソース ファイルを取得し、各リソースの名前と値を表示します。

using System;
using System.Collections;
using System.IO;
using System.Reflection;
using System.Resources;

public class Example
{
   public static void Main()
   {
      var assem = typeof(Example).Assembly;
      var fs = assem.GetManifestResourceStream("PatientForm.resources");
      var rr = new ResourceReader(fs);
      IDictionaryEnumerator dict = rr.GetEnumerator();
      int ctr = 0;

      while (dict.MoveNext()) {
         ctr++;
         Console.WriteLine("{0:00}: {1} = {2}", ctr, dict.Key, dict.Value);
      }
      rr.Close();
   }
}
// The example displays the following output:
//       01: Label3 = "Species:"
//       02: Label2 = "Pet Name:"
//       03: Label1 = "Patient Number:"
//       04: Label7 = "Owner:"
//       05: Label6 = "Age:"
//       06: Label5 = "Date of Birth:"
//       07: Label4 = "Breed:"
//       08: Label9 = "Home Phone:"
//       09: Label8 = "Address:"
//       10: Title = "Top Pet Animal Clinic"
//       11: Label10 = "Work Phone:"
//       12: Label11 = "Mobile Phone:"
Imports System.Collections
Imports System.IO
Imports System.Reflection
Imports System.Resources

Module Example
   Public Sub Main()
      Dim assem As Assembly = GetType(Example).Assembly
      Dim fs As Stream = assem.GetManifestResourceStream("PatientForm.resources")
      Dim rr As New ResourceReader(fs)
      Dim dict As IDictionaryEnumerator = rr.GetEnumerator
      Dim ctr As Integer

      Do While dict.MoveNext()
         ctr += 1
         Console.WriteLine("{0:00}: {1} = {2}", ctr, dict.Key, dict.Value)
      Loop

      rr.Close()
   End Sub
End Module
' The example displays the following output:
'       01: Label3 = "Species:"
'       02: Label2 = "Pet Name:"
'       03: Label1 = "Patient Number:"
'       04: Label7 = "Owner:"
'       05: Label6 = "Age:"
'       06: Label5 = "Date of Birth:"
'       07: Label4 = "Breed:"
'       08: Label9 = "Home Phone:"
'       09: Label8 = "Address:"
'       10: Title = "Top Pet Animal Clinic"
'       11: Label10 = "Work Phone:"
'       12: Label11 = "Mobile Phone:"

C# の例に という名前を付 Example.csけた場合は、次のコマンドを使用してコンパイルできます。

csc Example.cs /res:PatientForm.resources

Visual Basic の例に という名前が付けられている Example.vb場合は、次のコマンドを使用してコンパイルできます。

vbc Example.vb /res:PatientForm.resources

注釈

コンストラクターは ResourceReader(Stream) 、スタンドアロンの ResourceReader .resources ファイルまたはアセンブリに埋め込まれている .resources ファイルからリソースを取得する オブジェクトをインスタンス化します。 スタンドアロンの .resources ファイルから読み取る場合は、オブジェクトを Stream インスタンス化してコンストラクターに ResourceReader(Stream) 渡します。 埋め込み .resources ファイルから読み取る場合は、.resources ファイルの大文字と小文字を区別する名前で メソッドを呼び出 Assembly.GetManifestResourceStream し、返された Stream オブジェクトをコンストラクターに ResourceReader(Stream) 渡します。

重要

信頼されていないデータを指定してこのオブジェクトのインスタンスを使用することは、セキュリティ上のリスクが伴います。 このオブジェクトは信頼されたデータでのみ使用してください。 詳細については、「 すべての入力を検証する」を参照してください。

こちらもご覧ください

適用対象

ResourceReader(String)

ソース:
ResourceReader.cs
ソース:
ResourceReader.cs
ソース:
ResourceReader.cs

リソース ファイルを指定して ResourceReader クラスの新しいインスタンスを初期化します。

public:
 ResourceReader(System::String ^ fileName);
public ResourceReader (string fileName);
new System.Resources.ResourceReader : string -> System.Resources.ResourceReader
Public Sub New (fileName As String)

パラメーター

fileName
String

読み取るリソース ファイルのパスと名前。 filename では、大文字と小文字は区別されません。

例外

fileName パラメーターが null です。

ファイルが見つかりません。

I/O エラーが発生しました。

リソース ファイルの形式が無効です。 たとえば、ファイルの長さが 0 の場合などです。

このセクションの例では、 という名前 PatientForm.txt の次の .txt ファイルを使用して、アプリケーションで使用されるリソースを定義します。

Title="Top Pet Animal Clinic"
Label1="Patient Number:"
Label2="Pet Name:"
Label3="Species:"
Label4="Breed:"
Label5="Date of Birth:"
Label6="Age:"
Label7="Owner:"
Label8="Address:"
Label9="Home Phone:"
Label10="Work Phone:"
Label11="Mobile Phone:"

この .txt ファイルを .resources ファイルにコンパイルするには、次のコマンドを発行します。

resgen PatientForm.txt

次の例では、 内 PatientForm.resources のリソースを列挙し、それぞれの名前と値を表示します。

using System;
using System.Collections;
using System.Resources;

public class Example
{
   public static void Main()
   {
      var rr = new ResourceReader("PatientForm.resources");
      IDictionaryEnumerator dict = rr.GetEnumerator();
      int ctr = 0;

      while (dict.MoveNext()) {
         ctr++;
         Console.WriteLine("{0:00}: {1} = {2}", ctr, dict.Key, dict.Value);
      }

      rr.Close();
   }
}
// The example displays the following output:
//       01: Label3 = "Species:"
//       02: Label2 = "Pet Name:"
//       03: Label1 = "Patient Number:"
//       04: Label7 = "Owner:"
//       05: Label6 = "Age:"
//       06: Label5 = "Date of Birth:"
//       07: Label4 = "Breed:"
//       08: Label9 = "Home Phone:"
//       09: Label8 = "Address:"
//       10: Title = "Top Pet Animal Clinic"
//       11: Label10 = "Work Phone:"
//       12: Label11 = "Mobile Phone:"
Imports System.Collections
Imports System.Resources

Module Example
   Public Sub Main()
      Dim rr As New ResourceReader("PatientForm.resources")
      Dim dict As IDictionaryEnumerator = rr.GetEnumerator
      Dim ctr As Integer

      Do While dict.MoveNext()
         ctr += 1
         Console.WriteLine("{0:00}: {1} = {2}", ctr, dict.Key, dict.Value)
      Loop
      
      rr.Close()
   End Sub
End Module
' The example displays the following output:
'       01: Label3 = "Species:"
'       02: Label2 = "Pet Name:"
'       03: Label1 = "Patient Number:"
'       04: Label7 = "Owner:"
'       05: Label6 = "Age:"
'       06: Label5 = "Date of Birth:"
'       07: Label4 = "Breed:"
'       08: Label9 = "Home Phone:"
'       09: Label8 = "Address:"
'       10: Title = "Top Pet Animal Clinic"
'       11: Label10 = "Work Phone:"
'       12: Label11 = "Mobile Phone:"

注釈

コンストラクターは ResourceReader(String) 、スタンドアロンの ResourceReader .resources ファイルからリソースを取得する オブジェクトをインスタンス化します。 埋め込み .resources ファイルからリソースを取得するには、 コンストラクターを ResourceReader(Stream) 使用します。

重要

信頼されていないデータを指定してこのオブジェクトのインスタンスを使用することは、セキュリティ上のリスクが伴います。 このオブジェクトは信頼されたデータでのみ使用してください。 詳細については、「 すべての入力を検証する」を参照してください。

適用対象