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 文件的名称。 这是一个控制台应用,它接受主程序集或附属程序集的名称作为命令行参数。 它显示应作为baseName参数提供或ResourceManager(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)ResourceManager(String, Assembly, Type) 构造函数的 ResourceManager 字符串相同。

适用于