StronglyTypedResourceBuilder Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Ger stöd för starkt inskrivna resurser. Det går inte att ärva den här klassen.
public ref class StronglyTypedResourceBuilder abstract sealed
public static class StronglyTypedResourceBuilder
type StronglyTypedResourceBuilder = class
Public Class StronglyTypedResourceBuilder
- Arv
-
StronglyTypedResourceBuilder
Exempel
I följande exempel genereras en klass med namnet DemoResources som är skriven i C# eller Visual Basic (beroende på exemplets källkod). Den här klassen finns i DemoApp namnområdet och har egenskaper som returnerar bitmappen för en logotyp och namnet på ett program. Exemplet anropar en CreateResourceFile metod för att skapa den nödvändiga .resw-filen och kräver att en bitmappsfil med namnet Logo.bmp hittas i exemplets aktuella katalog. Kodexemplet använder följande resursfil med namnet 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
Programkoden kan sedan använda klassen på följande sätt:
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
Kommentarer
Vanligtvis separerar resurser kod från innehåll i ett program. Genom att skapa och använda dessa resurser blir det enklare att utveckla lokala program. I .NET Framework används vanligtvis resurser med hjälp av klassen ResourceManager, som innehåller metoder som ger åtkomst till kulturspecifika resurser vid körning. Mer information om hur du skapar och förbrukar resurser finns i Resurser i Skrivbordsappar.
Starkt skrivet resursstöd är en kompileringstidsfunktion som kapslar in åtkomst till resurser genom att skapa klasser som innehåller en uppsättning statiska, skrivskyddade (get) egenskaper. Det här är ett alternativt sätt att använda resurser i stället för att anropa ResourceManager.GetString metoderna och ResourceManager.GetObject .
De grundläggande funktionerna för starkt skrivet resursstöd tillhandahålls av StronglyTypedResourceBuilder klassen (samt /str kommandoradsalternativet i Resgen.exe (Resursfilgenerator)). Metodens Create utdata är en klass som innehåller starkt skrivna egenskaper som matchar de resurser som refereras till i indataparametern. Den här klassen ger skrivskyddad åtkomst till de resurser som är tillgängliga i den bearbetade filen.
Metoder
| Name | Description |
|---|---|
| Create(IDictionary, String, String, CodeDomProvider, Boolean, String[]) |
Genererar en klassfil som innehåller starkt skrivna egenskaper som matchar de resurser som refereras i den angivna samlingen. |
| Create(IDictionary, String, String, String, CodeDomProvider, Boolean, String[]) |
Genererar en klassfil som innehåller starkt skrivna egenskaper som matchar de resurser som refereras i den angivna samlingen. |
| Create(String, String, String, CodeDomProvider, Boolean, String[]) |
Genererar en klassfil som innehåller starkt skrivna egenskaper som matchar resurserna i den angivna .resx-filen. |
| Create(String, String, String, String, CodeDomProvider, Boolean, String[]) |
Genererar en klassfil som innehåller starkt skrivna egenskaper som matchar resurserna i den angivna .resx-filen. |
| VerifyResourceName(String, CodeDomProvider) |
Genererar en giltig resurssträng baserat på den angivna indatasträngen och kodprovidern. |