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 文件的名称。 这是一个控制台应用,它接受main程序集或附属程序集的名称作为命令行参数。 它显示应作为 baseNameResourceManager(String, Assembly, Type) 构造函数的参数ResourceManager(String, Assembly)提供的字符串,以便资源管理器可以正确标识资源。

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(String, Assembly, Type) 构造函数的ResourceManager(String, Assembly)ResourceManager字符串相同。

适用于