StronglyTypedResourceBuilder 类

定义

为强类型资源提供支持。 此类不能被继承。

public ref class StronglyTypedResourceBuilder abstract sealed
public static class StronglyTypedResourceBuilder
type StronglyTypedResourceBuilder = class
Public Class StronglyTypedResourceBuilder
继承
StronglyTypedResourceBuilder

示例

下面的示例生成一个名为 DemoResources 的类,该类使用 C# 或 Visual Basic (编写,具体取决于示例的源代码) 。 此类位于 命名空间中 DemoApp ,具有返回徽标位图和应用程序名称的属性。 此示例调用 方法 CreateResourceFile 以创建必要的 .resw 文件,并要求在示例的当前目录中找到名为 Logo.bmp 位图文件。 该代码示例使用以下名为 demo.resx 的资源文件:

using Microsoft.CSharp;
using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.Drawing;
using System.IO;
using System.Resources;
using System.Resources.Tools;

public class Example
{
   public static void Main()
   {
      CreateResXFile();
      
      StreamWriter sw = new StreamWriter(@".\DemoResources.cs");
      string[] errors = null;
      CSharpCodeProvider provider = new CSharpCodeProvider();
      CodeCompileUnit code = StronglyTypedResourceBuilder.Create("Demo.resx", "DemoResources", 
                                                                 "DemoApp", provider, 
                                                                 false, out errors);    
      if (errors.Length > 0)
         foreach (var error in errors)
            Console.WriteLine(error); 

      provider.GenerateCodeFromCompileUnit(code, sw, new CodeGeneratorOptions());                                         
      sw.Close();
   }

   private static void CreateResXFile()
   {
      Bitmap logo = new Bitmap(@".\Logo.bmp");

      ResXResourceWriter rw = new ResXResourceWriter(@".\Demo.resx");
      rw.AddResource("Logo", logo); 
      rw.AddResource("AppTitle", "Demo Application");
      rw.Generate();
      rw.Close();
   }
}
Imports System.CodeDom
Imports System.CodeDom.Compiler
Imports System.Drawing
Imports System.IO
Imports System.Resources
Imports System.Resources.Tools

Module Example
   Public Sub Main()
      CreateResXFile()
      
      Dim sw As New StreamWriter(".\DemoResources.vb")
      Dim errors() As String = Nothing
      Dim provider As New VBCodeProvider()
      Dim code As CodeCompileUnit = StronglyTypedResourceBuilder.Create("Demo.resx", "DemoResources", 
                                                                        "DemoApp", provider, 
                                                                        false, errors)    
      If errors.Length > 0 Then
         For Each [error] In errors
            Console.WriteLine([error]) 
         Next
      End If
      provider.GenerateCodeFromCompileUnit(code, sw, New CodeGeneratorOptions())                                         
      sw.Close()
   End Sub
   
   Private Sub CreateResXFile()
      Dim logo As New Bitmap(".\Logo.bmp")

      Dim rw As New ResXResourceWriter(".\Demo.resx")
      rw.AddResource("Logo", logo) 
      rw.AddResource("AppTitle", "Demo Application")
      rw.Generate()
      rw.Close()
   End Sub
End Module

然后,应用程序代码可以使用 类,如下所示:

this.Text = DemoApp.DemoResources.AppTitle;
System.Drawing.Bitmap bmp = DemoApp.DemoResources.Logo;
Me.Text = DemoApp.DemoResources.AppTitle
Dim bmp As System.Drawing.Bitmap = DemoApp.DemoResources.Logo

注解

通常,资源将代码与应用程序中的内容分开。 创建和使用这些资源可以更轻松地开发可本地化的应用程序。 在.NET Framework中,通常使用 ResourceManager 类来使用资源,该类包含的方法在运行时提供对特定于区域性的资源的访问。 有关创建和使用资源的详细信息,请参阅 桌面应用中的资源

强类型资源支持是一种编译时功能,它通过创建包含一组静态只读 () get 属性的类来封装对资源的访问。 这提供了一种使用资源的替代方法,而不是调用 ResourceManager.GetStringResourceManager.GetObject 方法。

强类型资源支持的基本功能由 StronglyTypedResourceBuilder 类 (以及 /strResgen.exe (资源文件生成器) ) 中的命令行选项提供。 方法的 Create 输出是一个类,该类包含与输入参数中引用的资源匹配的强类型属性。 此类提供对已处理文件中可用资源的只读访问权限。

方法

Create(IDictionary, String, String, CodeDomProvider, Boolean, String[])

生成一个类文件,该文件包含与指定集合中引用的资源相匹配的强类型的属性。

Create(IDictionary, String, String, String, CodeDomProvider, Boolean, String[])

生成一个类文件,该文件包含与指定集合中引用的资源相匹配的强类型的属性。

Create(String, String, String, CodeDomProvider, Boolean, String[])

生成一个类文件,该文件包含与指定的 .resx 文件中的资源相匹配的强类型属性。

Create(String, String, String, String, CodeDomProvider, Boolean, String[])

生成一个类文件,该文件包含与指定的 .resx 文件中的资源相匹配的强类型属性。

VerifyResourceName(String, CodeDomProvider)

根据指定的输入字符串和代码提供程序,生成一个有效的资源字符串。

适用于