StronglyTypedResourceBuilder Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt ondersteuning voor sterk getypte resources. Deze klasse kan niet worden overgenomen.
public ref class StronglyTypedResourceBuilder abstract sealed
public static class StronglyTypedResourceBuilder
type StronglyTypedResourceBuilder = class
Public Class StronglyTypedResourceBuilder
- Overname
-
StronglyTypedResourceBuilder
Voorbeelden
In het volgende voorbeeld wordt een klasse met de naam DemoResources gegenereerd die is geschreven in C# of Visual Basic (afhankelijk van de broncode van het voorbeeld). Deze klasse bevindt zich in de DemoApp naamruimte en heeft eigenschappen die de bitmap van een logo en de naam van een toepassing retourneren. In het voorbeeld wordt een CreateResourceFile methode aangeroepen om het benodigde RESW-bestand te maken en moet een bitmapbestand met de naam Logo.bmp worden gevonden in de huidige map van het voorbeeld. In het codevoorbeeld wordt het volgende resourcebestand met de naam demo.resx gebruikt:
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
Uw toepassingscode kan vervolgens de klasse als volgt gebruiken:
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
Opmerkingen
Resources scheiden doorgaans code van inhoud binnen een toepassing. Door deze resources te maken en te gebruiken, is het eenvoudiger om lokaliseerbare toepassingen te ontwikkelen. In het .NET Framework worden resources meestal gebruikt met behulp van de klasse ResourceManager, die methoden bevat die tijdens runtime toegang bieden tot cultuurspecifieke resources. Zie Resources in Desktop Apps voor meer informatie over het maken en gebruiken van resources.
Sterk getypte resourceondersteuning is een functie voor compileren die de toegang tot resources inkapselt door klassen te maken die een set statische, alleen-lezen (get) eigenschappen bevatten. Dit biedt een alternatieve manier om resources te gebruiken in plaats van de ResourceManager.GetString en ResourceManager.GetObject methoden aan te roepen.
De basisfunctionaliteit voor sterk getypte resourceondersteuning wordt geleverd door de StronglyTypedResourceBuilder klasse (evenals de /str opdrachtregeloptie in de Resgen.exe (resourcebestandgenerator)). De uitvoer van de Create methode is een klasse die sterk getypte eigenschappen bevat die overeenkomen met de resources waarnaar wordt verwezen in de invoerparameter. Deze klasse biedt alleen-lezentoegang tot de resources die beschikbaar zijn in het verwerkte bestand.
Methoden
| Name | Description |
|---|---|
| Create(IDictionary, String, String, CodeDomProvider, Boolean, String[]) |
Hiermee wordt een klassebestand gegenereerd dat sterk getypte eigenschappen bevat die overeenkomen met de resources waarnaar wordt verwezen in de opgegeven verzameling. |
| Create(IDictionary, String, String, String, CodeDomProvider, Boolean, String[]) |
Hiermee wordt een klassebestand gegenereerd dat sterk getypte eigenschappen bevat die overeenkomen met de resources waarnaar wordt verwezen in de opgegeven verzameling. |
| Create(String, String, String, CodeDomProvider, Boolean, String[]) |
Hiermee wordt een klassebestand gegenereerd dat sterk getypte eigenschappen bevat die overeenkomen met de resources in het opgegeven RESX-bestand. |
| Create(String, String, String, String, CodeDomProvider, Boolean, String[]) |
Hiermee wordt een klassebestand gegenereerd dat sterk getypte eigenschappen bevat die overeenkomen met de resources in het opgegeven RESX-bestand. |
| VerifyResourceName(String, CodeDomProvider) |
Genereert een geldige resourcetekenreeks op basis van de opgegeven invoertekenreeks en codeprovider. |