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.GetString методов и ResourceManager.GetObject .

Основные функции для поддержки строго типизированных ресурсов предоставляются классом StronglyTypedResourceBuilder (а также параметром /str командной строки в Resgen.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)

Создает допустимую строку ресурса на основе указанной входной строки и поставщика кода.

Применяется к