Taal

StronglyTypedResourceBuilder Klas

Definitie

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.

Van toepassing op