VBCodeProvider Klas

Definitie

Biedt toegang tot exemplaren van de Visual Basic codegenerator en codecompilator.

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
Overname

Voorbeelden

In het volgende voorbeeld wordt de C# of Visual Basic codeprovider gebruikt om een bronbestand te compileren. In het voorbeeld wordt de bestandsextensie voor invoer gecontroleerd en wordt de bijbehorende CSharpCodeProvider of VBCodeProvider compilatie gebruikt. Het invoerbestand wordt gecompileerd in een uitvoerbaar bestand en eventuele compilatiefouten worden weergegeven in de 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

Opmerkingen

Deze klasse biedt methoden die kunnen worden gebruikt voor het ophalen van exemplaren van de Visual Basic ICodeGenerator en ICodeCompiler-implementaties.

Note

Deze klasse bevat een koppelingsvraag en een overnamevraag op klasseniveau die van toepassing is op alle leden. Een SecurityException wordt geworpen wanneer de directe aanroeper of de afgeleide klasse geen volledig-vertrouwensmachtiging heeft.

Constructors

Name Description
VBCodeProvider()

Initialiseert een nieuw exemplaar van de VBCodeProvider klasse.

VBCodeProvider(IDictionary<String,String>)

Initialiseert een nieuw exemplaar van de VBCodeProvider klasse met behulp van de opgegeven provideropties.

Eigenschappen

Name Description
CanRaiseEvents

Hiermee wordt een waarde opgehaald die aangeeft of het onderdeel een gebeurtenis kan genereren.

(Overgenomen van Component)
Container

Hiermee haalt u het IContainer bestand op dat de Component.

(Overgenomen van Component)
DesignMode

Hiermee wordt een waarde opgehaald die aangeeft of de Component momenteel in de ontwerpmodus is.

(Overgenomen van Component)
Events

Hiermee haalt u de lijst met gebeurtenis-handlers op die aan dit Componentbestand zijn gekoppeld.

(Overgenomen van Component)
FileExtension

Hiermee haalt u de bestandsnaamextensie op die moet worden gebruikt bij het maken van broncodebestanden.

LanguageOptions

Hiermee haalt u een taalfuncties-id op.

Site

Haalt of stelt de ISite van de Component.

(Overgenomen van Component)

Methoden

Name Description
CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[])

Compileert een assembly op basis van de System.CodeDom bomen in de opgegeven matrix met objecten, met behulp van CodeCompileUnit de opgegeven compilerinstellingen.

(Overgenomen van CodeDomProvider)
CompileAssemblyFromFile(CompilerParameters, String[])

Compileert een assembly van de broncode in de opgegeven bestanden met behulp van de opgegeven compilerinstellingen.

(Overgenomen van CodeDomProvider)
CompileAssemblyFromSource(CompilerParameters, String[])

Compileert een assembly van de opgegeven matrix met tekenreeksen die broncode bevatten, met behulp van de opgegeven compilerinstellingen.

(Overgenomen van CodeDomProvider)
CreateCompiler()
Verouderd.

Hiermee haalt u een exemplaar van de Visual Basic codecompilator op.

CreateEscapedIdentifier(String)

Hiermee maakt u een escape-id voor de opgegeven waarde.

(Overgenomen van CodeDomProvider)
CreateGenerator()
Verouderd.

Hiermee haalt u een exemplaar van de Visual Basic codegenerator op.

CreateGenerator(String)

Wanneer deze wordt overschreven in een afgeleide klasse, maakt u een nieuwe codegenerator met behulp van de opgegeven bestandsnaam voor uitvoer.

(Overgenomen van CodeDomProvider)
CreateGenerator(TextWriter)

Wanneer deze wordt overschreven in een afgeleide klasse, maakt u een nieuwe codegenerator met behulp van de opgegeven TextWriter voor uitvoer.

(Overgenomen van CodeDomProvider)
CreateObjRef(Type)

Hiermee maakt u een object dat alle relevante informatie bevat die nodig is om een proxy te genereren die wordt gebruikt om te communiceren met een extern object.

(Overgenomen van MarshalByRefObject)
CreateParser()
Verouderd.

Wanneer deze wordt overschreven in een afgeleide klasse, maakt u een nieuwe codeparser.

(Overgenomen van CodeDomProvider)
CreateValidIdentifier(String)

Hiermee maakt u een geldige id voor de opgegeven waarde.

(Overgenomen van CodeDomProvider)
Dispose()

Alle resources die worden gebruikt door de Component.

(Overgenomen van Component)
Dispose(Boolean)

Publiceert de niet-beheerde resources die worden gebruikt door de Component beheerde resources en brengt eventueel de beheerde resources vrij.

(Overgenomen van Component)
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions)

Genereert code voor de opgegeven Code Document Object Model -compilatie-eenheid (CodeDOM) en verzendt deze naar de opgegeven tekstschrijver met behulp van de opgegeven opties.

(Overgenomen van CodeDomProvider)
GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions)

Genereert code voor de opgegeven Code Document Object Model-expressie (CodeDOM) en verzendt deze naar de opgegeven tekstschrijver met behulp van de opgegeven opties.

(Overgenomen van CodeDomProvider)
GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions)

Hiermee genereert u code voor het opgegeven klasselid met behulp van de opgegeven opties voor tekstschrijver en codegenerator.

GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)

Hiermee genereert u code voor de opgegeven Code Document Object Model -naamruimte (CodeDOM) en verzendt u deze naar de opgegeven tekstschrijver met behulp van de opgegeven opties.

(Overgenomen van CodeDomProvider)
GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions)

Genereert code voor de opgegeven Code Document Object Model-instructie (CodeDOM) en verzendt deze naar de opgegeven tekstschrijver met behulp van de opgegeven opties.

(Overgenomen van CodeDomProvider)
GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions)

Hiermee genereert u code voor de opgegeven codedocumentobjectmodeldeclaratie (CodeDOM) en verzendt u deze naar de opgegeven tekstschrijver met behulp van de opgegeven opties.

(Overgenomen van CodeDomProvider)
GetConverter(Type)

Hiermee haalt u een TypeConverter op voor het opgegeven type object.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetLifetimeService()

Hiermee haalt u het huidige levensduurserviceobject op waarmee het levensduurbeleid voor dit exemplaar wordt beheerd.

(Overgenomen van MarshalByRefObject)
GetService(Type)

Hiermee wordt een object geretourneerd dat een service vertegenwoordigt die wordt geleverd door of door de Component service Container.

(Overgenomen van Component)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
GetTypeOutput(CodeTypeReference)

Hiermee haalt u het type op dat wordt aangegeven door de opgegeven CodeTypeReference.

(Overgenomen van CodeDomProvider)
InitializeLifetimeService()

Hiermee haalt u een levensduurserviceobject op om het levensduurbeleid voor dit exemplaar te beheren.

(Overgenomen van MarshalByRefObject)
IsValidIdentifier(String)

Retourneert een waarde die aangeeft of de opgegeven waarde een geldige id is voor de huidige taal.

(Overgenomen van CodeDomProvider)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
MemberwiseClone(Boolean)

Hiermee maakt u een ondiepe kopie van het huidige MarshalByRefObject object.

(Overgenomen van MarshalByRefObject)
Parse(TextReader)

Compileert de code die wordt gelezen uit de opgegeven tekststroom naar een CodeCompileUnit.

(Overgenomen van CodeDomProvider)
Supports(GeneratorSupport)

Retourneert een waarde die aangeeft of de opgegeven ondersteuning voor het genereren van code wordt geboden.

(Overgenomen van CodeDomProvider)
ToString()

Retourneert een String met de naam van de Component, indien van toepassing. Deze methode mag niet worden overschreven.

(Overgenomen van Component)

gebeurtenis

Name Description
Disposed

Treedt op wanneer het onderdeel wordt verwijderd door een aanroep naar de Dispose() methode.

(Overgenomen van Component)

Van toepassing op

Zie ook