Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Regex.CompileToAssembly (RegexCompilationInfo[], AssemblyName, CustomAttributeBuilder[], String)

 

Data di pubblicazione: ottobre 2016

Compila uno o più oggetti Regex specificati e un file di risorse specificato in un assembly denominato con gli attributi specificati.

Spazio dei nomi:   System.Text.RegularExpressions
Assembly:  System (in System.dll)

[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort = true)]
public static void CompileToAssembly(
	RegexCompilationInfo[] regexinfos,
	AssemblyName assemblyname,
	CustomAttributeBuilder[] attributes,
	string resourceFile
)

Parametri

regexinfos
Type: System.Text.RegularExpressions.RegexCompilationInfo[]

Matrice che descrive le espressioni regolari da compilare.

assemblyname
Type: System.Reflection.AssemblyName

Nome file dell'assembly.

attributes
Type: System.Reflection.Emit.CustomAttributeBuilder[]

Matrice che definisce gli attributi da applicare all'assembly.

resourceFile
Type: System.String

Nome del file di risorse Win32 da includere nell'assembly.

Exception Condition
ArgumentException

Il valore di assemblyname del parametro AssemblyName.Name proprietà è una stringa vuota o null.

-oppure-

Criterio di espressione regolare di uno o più oggetti in regexinfos contiene sintassi non valida.

ArgumentNullException

assemblyname o regexinfos è null.

COMException

Il resourceFile parametro indica un file di risorse Win32 non valido.

FileNotFoundException

Il file designato dal resourceFile Impossibile trovare il parametro.

Il CompileToAssembly(RegexCompilationInfo[], AssemblyName, CustomAttributeBuilder[], String) metodo genera un assembly .NET Framework in cui ogni espressione regolare definita nel regexinfos matrice è rappresentata da una classe. In genere, il CompileToAssembly(RegexCompilationInfo[], AssemblyName, CustomAttributeBuilder[], String) viene chiamato da un'applicazione separata che genera un assembly di espressioni regolari compilate. Ogni espressione regolare inclusi nell'assembly ha le caratteristiche seguenti:

  • Deriva dalla Regex classe.

  • Viene assegnato il nome completo è definito per il fullnamespace e name i parametri del relativo valore corrispondente RegexCompilationInfo oggetto.

  • Ha un valore predefinito (o senza parametri) costruttore.

In genere, il codice che crea e utilizza l'espressione regolare compilata è disponibile in un assembly o applicazione che è separato dal codice che crea l'assembly.

Poiché il CompileToAssembly metodo genera un assembly .NET Framework da una chiamata al metodo anziché la parola chiave definizione della classe del linguaggio specifico (ad esempio class in c# o Class...End Class in Visual Basic), non consente gli attributi di .NET Framework da assegnare all'assembly utilizzando la sintassi di attributo standard del linguaggio di sviluppo. Il attributes parametro fornisce un metodo alternativo per definire gli attributi applicati all'assembly. Per ogni attributo che si desidera applicare all'assembly, eseguire le operazioni seguenti:

  1. Creare una matrice di Type gli oggetti che rappresentano i tipi di parametro del costruttore di attributo che si desidera chiamare.

  2. Recuperare un Type oggetto che rappresenta la classe di attributo che si desidera applicare al nuovo assembly.

  3. Chiamare il GetConstructor metodo dell'attributo Type per recuperare un ConstructorInfo oggetto che rappresenta il costruttore dell'attributo che si desidera chiamare. Passare il GetConstructor metodo la matrice di Type gli oggetti che rappresentano i tipi di parametro del costruttore

  4. Creare un Object matrice che definisce i parametri da passare al costruttore dell'attributo.

  5. Creare un'istanza di un CustomAttributeBuilder oggetto passando al costruttore di ConstructorInfo oggetto recuperato nel passaggio 3 e Object matrice creata nel passaggio 4.

È quindi possibile passare una matrice di questi CustomAttributeBuilder oggetti anziché il attributes parametro per il CompileToAssembly(RegexCompilationInfo[], AssemblyName, CustomAttributeBuilder[], String) metodo.

Note per i chiamanti:

Se si sviluppa in un sistema con .NET Framework 4.5 o relative versioni intermedie installati, la destinazione è .NET Framework 4, e si utilizza il CompileToAssembly metodo per creare un assembly che contiene le espressioni regolari compilate. Tentativo di utilizzare una delle espressioni regolari in assembly in un sistema che dispone di .NET Framework 4 genera un'eccezione. Per risolvere il problema, è possibile eseguire una delle operazioni seguenti:

  • Compilare l'assembly che contiene le espressioni regolari compilate in un sistema con .NET Framework 4 anziché versioni successive installato.

  • Anziché chiamare CompileToAssembly e recupera l'espressione regolare compilata da un assembly, utilizzare statico o di istanza Regex metodi con il RegexOptions.Compiled opzione quando crea un'istanza di un Regex dell'oggetto o chiamare il metodo corrispondente criterio di espressione regolare.

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: