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