次の方法で共有


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)または ResourceManager(String, Assembly, Type) コンストラクターの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" です。

Important

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

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

適用対象