VBCodeProvider Classe

Definizione

Fornisce l'accesso alle istanze del generatore di codice Visual Basic e del compilatore di codice.

public ref class VBCodeProvider : System::CodeDom::Compiler::CodeDomProvider
public class VBCodeProvider : System.CodeDom.Compiler.CodeDomProvider
type VBCodeProvider = class
    inherit CodeDomProvider
Public Class VBCodeProvider
Inherits CodeDomProvider
Ereditarietà

Esempio

Nell'esempio seguente viene usato il provider di codice C# o Visual Basic per compilare un file di origine. L'esempio controlla l'estensione del file di input e usa il corrispondente CSharpCodeProvider o VBCodeProvider per la compilazione. Il file di input viene compilato in un file eseguibile e gli eventuali errori di compilazione vengono visualizzati nella console.

public static bool CompileExecutable(String sourceName)
{
    FileInfo sourceFile = new FileInfo(sourceName);
    CodeDomProvider provider = null;
    bool compileOk = false;

    // Select the code provider based on the input file extension.
    if (sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) == ".CS")
    {
        provider = CodeDomProvider.CreateProvider("CSharp");
    }
    else if (sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) == ".VB")
    {
        provider = CodeDomProvider.CreateProvider("VisualBasic");
    }
    else
    {
        Console.WriteLine("Source file must have a .cs or .vb extension");
    }

    if (provider != null)
    {

        // Format the executable file name.
        // Build the output assembly path using the current directory
        // and <source>_cs.exe or <source>_vb.exe.

        String exeName = String.Format(@"{0}\{1}.exe",
            System.Environment.CurrentDirectory,
            sourceFile.Name.Replace(".", "_"));

        CompilerParameters cp = new CompilerParameters();

        // Generate an executable instead of
        // a class library.
        cp.GenerateExecutable = true;

        // Specify the assembly file name to generate.
        cp.OutputAssembly = exeName;

        // Save the assembly as a physical file.
        cp.GenerateInMemory = false;

        // Set whether to treat all warnings as errors.
        cp.TreatWarningsAsErrors = false;

        // Invoke compilation of the source file.
        CompilerResults cr = provider.CompileAssemblyFromFile(cp,
            sourceName);

        if(cr.Errors.Count > 0)
        {
            // Display compilation errors.
            Console.WriteLine("Errors building {0} into {1}",
                sourceName, cr.PathToAssembly);
            foreach(CompilerError ce in cr.Errors)
            {
                Console.WriteLine("  {0}", ce.ToString());
                Console.WriteLine();
            }
        }
        else
        {
            // Display a successful compilation message.
            Console.WriteLine("Source {0} built into {1} successfully.",
                sourceName, cr.PathToAssembly);
        }

        // Return the results of the compilation.
        if (cr.Errors.Count > 0)
        {
            compileOk = false;
        }
        else
        {
            compileOk = true;
        }
    }
    return compileOk;
}
       Public Shared Function CompileExecutable(sourceName As String) As Boolean
           Dim sourceFile As FileInfo = New FileInfo(sourceName)
           Dim provider As CodeDomProvider = Nothing
           Dim compileOk As Boolean = False

           ' Select the code provider based on the input file extension.
           If sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) = ".CS"

               provider = CodeDomProvider.CreateProvider("CSharp")

           ElseIf sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) = ".VB"

               provider = CodeDomProvider.CreateProvider("VisualBasic")

           Else
               Console.WriteLine("Source file must have a .cs or .vb extension")
           End If

           If Not provider Is Nothing

               ' Format the executable file name.
               ' Build the output assembly path using the current directory
               ' and <source>_cs.exe or <source>_vb.exe.

               Dim exeName As String = String.Format("{0}\{1}.exe", _
                   System.Environment.CurrentDirectory, _
                   sourceFile.Name.Replace(".", "_"))

               Dim cp As CompilerParameters = new CompilerParameters()

               ' Generate an executable instead of 
               ' a class library.
               cp.GenerateExecutable = True

               ' Specify the assembly file name to generate.
               cp.OutputAssembly = exeName
   
               ' Save the assembly as a physical file.
               cp.GenerateInMemory = False
   
               ' Set whether to treat all warnings as errors.
               cp.TreatWarningsAsErrors = False

               ' Invoke compilation of the source file.
               Dim cr As CompilerResults = provider.CompileAssemblyFromFile(cp, _
                   sourceName)
   
               If cr.Errors.Count > 0
                   ' Display compilation errors.
                   Console.WriteLine("Errors building {0} into {1}", _
                       sourceName, cr.PathToAssembly)

                   Dim ce As CompilerError
                   For Each ce In cr.Errors
                       Console.WriteLine("  {0}", ce.ToString())
                       Console.WriteLine()
                   Next ce
               Else
                   ' Display a successful compilation message.
                   Console.WriteLine("Source {0} built into {1} successfully.", _
                       sourceName, cr.PathToAssembly)
               End If
             
               ' Return the results of the compilation.
               If cr.Errors.Count > 0
                   compileOk = False
               Else 
                   compileOk = True
               End If
           End If
           return compileOk

       End Function

Commenti

Questa classe fornisce metodi che possono essere usati per recuperare le istanze Visual Basic < delle implementazioni /> /> e .

Note

Questa classe contiene una richiesta di collegamento e una richiesta di ereditarietà a livello di classe che si applica a tutti i membri. Viene lanciato un SecurityException quando il chiamante immediato o la classe derivata non dispone dell'autorizzazione di piena fiducia.

Costruttori

Nome Descrizione
VBCodeProvider()

Inizializza una nuova istanza della classe VBCodeProvider.

VBCodeProvider(IDictionary<String,String>)

Inizializza una nuova istanza della VBCodeProvider classe utilizzando le opzioni del provider specificate.

Proprietà

Nome Descrizione
CanRaiseEvents

Ottiene un valore che indica se il componente può generare un evento.

(Ereditato da Component)
Container

Ottiene l'oggetto IContainer contenente l'oggetto Component.

(Ereditato da Component)
DesignMode

Ottiene un valore che indica se è Component attualmente in modalità progettazione.

(Ereditato da Component)
Events

Ottiene l'elenco dei gestori eventi associati a questo Componentoggetto .

(Ereditato da Component)
FileExtension

Ottiene l'estensione del nome file da utilizzare durante la creazione di file di codice sorgente.

LanguageOptions

Ottiene un identificatore delle funzionalità della lingua.

Site

Ottiene o imposta il ISite del Component.

(Ereditato da Component)

Metodi

Nome Descrizione
CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[])

Compila un assembly basato sugli System.CodeDom alberi contenuti nella matrice di CodeCompileUnit oggetti specificata, usando le impostazioni del compilatore specificate.

(Ereditato da CodeDomProvider)
CompileAssemblyFromFile(CompilerParameters, String[])

Compila un assembly dal codice sorgente contenuto nei file specificati, usando le impostazioni del compilatore specificate.

(Ereditato da CodeDomProvider)
CompileAssemblyFromSource(CompilerParameters, String[])

Compila un assembly dalla matrice di stringhe specificata contenente il codice sorgente, usando le impostazioni del compilatore specificate.

(Ereditato da CodeDomProvider)
CreateCompiler()
Obsoleti.

Ottiene un'istanza del compilatore di codice Visual Basic.

CreateEscapedIdentifier(String)

Crea un identificatore di escape per il valore specificato.

(Ereditato da CodeDomProvider)
CreateGenerator()
Obsoleti.

Ottiene un'istanza del generatore di codice Visual Basic.

CreateGenerator(String)

Quando sottoposto a override in una classe derivata, crea un nuovo generatore di codice usando il nome file specificato per l'output.

(Ereditato da CodeDomProvider)
CreateGenerator(TextWriter)

Quando sottoposto a override in una classe derivata, crea un nuovo generatore di codice usando l'oggetto specificato TextWriter per l'output.

(Ereditato da CodeDomProvider)
CreateObjRef(Type)

Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto.

(Ereditato da MarshalByRefObject)
CreateParser()
Obsoleti.

Quando sottoposto a override in una classe derivata, crea un nuovo parser di codice.

(Ereditato da CodeDomProvider)
CreateValidIdentifier(String)

Crea un identificatore valido per il valore specificato.

(Ereditato da CodeDomProvider)
Dispose()

Rilascia tutte le risorse usate da Component.

(Ereditato da Component)
Dispose(Boolean)

Rilascia le risorse non gestite usate da Component e, facoltativamente, rilascia le risorse gestite.

(Ereditato da Component)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions)

Genera il codice per l'unità di compilazione Code DOCUMENT Object Model (CodeDOM) specificata e lo invia al writer di testo specificato, usando le opzioni specificate.

(Ereditato da CodeDomProvider)
GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions)

Genera il codice per l'espressione Code DOCUMENT Object Model (CodeDOM) specificata e lo invia al writer di testo specificato, usando le opzioni specificate.

(Ereditato da CodeDomProvider)
GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions)

Genera il codice per il membro della classe specificato usando le opzioni del writer di testo e del generatore di codice specificate.

GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)

Genera il codice per lo spazio dei nomi Code DOCUMENT Object Model (CodeDOM) specificato e lo invia al writer di testo specificato, usando le opzioni specificate.

(Ereditato da CodeDomProvider)
GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions)

Genera il codice per l'istruzione Code DOCUMENT Object Model (CodeDOM) specificata e lo invia al writer di testo specificato, usando le opzioni specificate.

(Ereditato da CodeDomProvider)
GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions)

Genera il codice per la dichiarazione di tipo CodeDOM (Code Document Object Model) specificata e lo invia al writer di testo specificato, usando le opzioni specificate.

(Ereditato da CodeDomProvider)
GetConverter(Type)

Ottiene un TypeConverter oggetto per il tipo di oggetto specificato.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLifetimeService()

Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
GetService(Type)

Restituisce un oggetto che rappresenta un servizio fornito da Component o da Container.

(Ereditato da Component)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
GetTypeOutput(CodeTypeReference)

Ottiene il tipo indicato dall'oggetto specificato CodeTypeReference.

(Ereditato da CodeDomProvider)
InitializeLifetimeService()

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
IsValidIdentifier(String)

Restituisce un valore che indica se il valore specificato è un identificatore valido per la lingua corrente.

(Ereditato da CodeDomProvider)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia superficiale dell'oggetto corrente MarshalByRefObject .

(Ereditato da MarshalByRefObject)
Parse(TextReader)

Compila il codice letto dal flusso di testo specificato in un oggetto CodeCompileUnit.

(Ereditato da CodeDomProvider)
Supports(GeneratorSupport)

Restituisce un valore che indica se viene fornito il supporto per la generazione di codice specificato.

(Ereditato da CodeDomProvider)
ToString()

Restituisce un oggetto String contenente il nome dell'oggetto Component, se presente. Questo metodo non deve essere sottoposto a override.

(Ereditato da Component)

Eventi

Nome Descrizione
Disposed

Si verifica quando il componente viene eliminato da una chiamata al Dispose() metodo .

(Ereditato da Component)

Si applica a

Vedi anche