StronglyTypedResourceBuilder Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zapewnia obsługę silnie typiowanych zasobów. Klasa ta nie może być dziedziczona.
public ref class StronglyTypedResourceBuilder abstract sealed
public static class StronglyTypedResourceBuilder
type StronglyTypedResourceBuilder = class
Public Class StronglyTypedResourceBuilder
- Dziedziczenie
-
StronglyTypedResourceBuilder
Przykłady
Poniższy przykład generuje klasę o nazwie DemoResources napisaną w języku C# lub Visual Basic (w zależności od kodu źródłowego przykładu). Ta klasa znajduje się w DemoApp przestrzeni nazw i ma właściwości, które zwracają mapę bitową logo i nazwę aplikacji. Przykład wywołuje metodę CreateResourceFile w celu utworzenia niezbędnego pliku resw i wymaga znalezienia pliku mapy bitowej o nazwie Logo.bmp w bieżącym katalogu przykładu. Przykładowy kod używa następującego pliku zasobu o nazwie 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
Kod aplikacji może następnie użyć klasy w następujący sposób:
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
Uwagi
Zazwyczaj zasoby oddzielają kod od zawartości w aplikacji. Tworzenie i korzystanie z tych zasobów ułatwia opracowywanie aplikacji lokalizowalnych. W .NET Framework zasoby są zwykle używane przy użyciu klasy ResourceManager, która zawiera metody zapewniające dostęp do zasobów specyficznych dla kultury w czasie wykonywania. Aby uzyskać więcej informacji na temat tworzenia i używania zasobów, zobacz Zasoby w aplikacjach klasycznych.
Obsługa silnie typiowanych zasobów to funkcja czasu kompilacji, która hermetyzuje dostęp do zasobów, tworząc klasy zawierające zestaw statycznych właściwości tylko do odczytu (get). Zapewnia to alternatywny sposób korzystania z zasobów zamiast wywoływania ResourceManager.GetString metod i ResourceManager.GetObject .
Podstawową funkcją obsługi silnie typiowanych zasobów jest StronglyTypedResourceBuilder klasa (a także /str opcja wiersza polecenia w Resgen.exe (Generator plików zasobów)). Dane wyjściowe Create metody to klasa zawierająca silnie typizowane właściwości zgodne z zasobami, do których odwołuje się parametr wejściowy. Ta klasa zapewnia dostęp tylko do odczytu do zasobów, które są dostępne w przetworzonym pliku.
Metody
| Nazwa | Opis |
|---|---|
| Create(IDictionary, String, String, CodeDomProvider, Boolean, String[]) |
Generuje plik klasy, który zawiera silnie typizowane właściwości zgodne z zasobami, do których odwołuje się określona kolekcja. |
| Create(IDictionary, String, String, String, CodeDomProvider, Boolean, String[]) |
Generuje plik klasy, który zawiera silnie typizowane właściwości zgodne z zasobami, do których odwołuje się określona kolekcja. |
| Create(String, String, String, CodeDomProvider, Boolean, String[]) |
Generuje plik klasy, który zawiera silnie typizowane właściwości zgodne z zasobami w określonym pliku resx. |
| Create(String, String, String, String, CodeDomProvider, Boolean, String[]) |
Generuje plik klasy, który zawiera silnie typizowane właściwości zgodne z zasobami w określonym pliku resx. |
| VerifyResourceName(String, CodeDomProvider) |
Generuje prawidłowy ciąg zasobu na podstawie określonego ciągu wejściowego i dostawcy kodu. |