ResourceManager.BaseName プロパティ

定義

ResourceManager がリソースを検索するリソース ファイルのルート名を取得します。

public:
 virtual property System::String ^ BaseName { System::String ^ get(); };
public virtual string BaseName { get; }
member this.BaseName : string
Public Overridable ReadOnly Property BaseName As String

プロパティ値

String

ResourceManager がリソースを検索するリソース ファイルのルート名。

次のユーティリティをコンパイルして実行すると、埋め込まれた .resources ファイルの名前を判断できます。 これは、メイン アセンブリまたはサテライト アセンブリの名前をコマンド ライン パラメーターとして指定するコンソール アプリです。 リソース マネージャーがリソースを正しく識別できるように、またはResourceManager(String, Assembly, Type)コンストラクターのResourceManager(String, Assembly)パラメーターとしてbaseName指定する必要がある文字列が表示されます。

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

public class Example
{
   public static void Main()
   {
      if (Environment.GetCommandLineArgs().Length == 1) { 
         Console.WriteLine("No filename.");
         return;
      }
      
      string filename = Environment.GetCommandLineArgs()[1].Trim();
      // Check whether the file exists.
      if (! File.Exists(filename)) {
         Console.WriteLine("{0} does not exist.", filename);
         return;
      }   
      
      // Try to load the assembly.
      Assembly assem = Assembly.LoadFrom(filename);
      Console.WriteLine("File: {0}", filename);
         
      // Enumerate the resource files.
      string[] resNames = assem.GetManifestResourceNames();
      if (resNames.Length == 0)
         Console.WriteLine("   No resources found.");

      foreach (var resName in resNames)
         Console.WriteLine("   Resource: {0}", resName.Replace(".resources", ""));

      Console.WriteLine();
   }
}
Imports System.IO
Imports System.Reflection
Imports System.Resources

Module Example
   Public Sub Main()
      If Environment.GetCommandLineArgs.Length = 1 Then 
         Console.WriteLine("No filename.")
         Exit Sub
      End If
      Dim filename As String = Environment.GetCommandLineArgs(1).Trim()
      ' Check whether the file exists.
      If Not File.Exists(filename) Then
         Console.WriteLine("{0} does not exist.", filename)
         Exit Sub
      End If   
      
      ' Try to load the assembly.
      Dim assem As Assembly = Assembly.LoadFrom(filename)
      Console.WriteLine("File: {0}", filename)
         
      ' Enumerate the resource files.
      Dim resNames() As String = assem.GetManifestResourceNames()
      If resNames.Length = 0 Then
         Console.WriteLine("   No resources found.")
      End If
      For Each resName In resNames
         Console.WriteLine("   Resource: {0}", resName.Replace(".resources", ""))
      Next
      Console.WriteLine()
   End Sub
End Module

注釈

プロパティには BaseName 、完全修飾名前空間名とリソース ファイルのルート リソース名が反映されます。カルチャまたはファイル名の拡張子はありません。 たとえば、アプリの既定のリソース ファイルに名前が付けられている SampleApps.StringResources.resources場合、プロパティの BaseName 値は "SampleApps.StringResources" になります。 アプリの既定のリソース ファイルに名前が付けられ SampleApps.StringResources.en-US.resources 、サテライト アセンブリに埋め込まれている場合、プロパティの BaseName 値は "SampleApps.StringResources" のままです。

重要

BaseNameコマンド ラインからコンパイルおよび埋め込まれたリソース ファイルのプロパティ値には、ファイルのコンパイル時に名前空間名を明示的に含めない限り、名前空間名は含まれません。 一方、BaseNameVisual Studio環境内でコンパイルおよび埋め込まれるリソース ファイルのプロパティ値には、通常、既定の名前空間名が含まれます。

プロパティ値はBaseName、インスタンスをインスタンス化ResourceManagerするときにコンストラクターにResourceManager(String, Assembly)渡される文字列とResourceManager(String, Assembly, Type)同じです。

適用対象