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

プロパティ値

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

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

適用対象