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) |
Создает допустимую строку ресурса на основе указанной входной строки и поставщика кода. |