VBCodeProvider Klass

Definition

Ger åtkomst till instanser av Visual Basic kodgenerator och kodkompilator.

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
Arv

Exempel

I följande exempel används antingen C# eller Visual Basic kodprovider för att kompilera en källfil. Exemplet kontrollerar filtillägget för indata och använder motsvarande CSharpCodeProvider eller VBCodeProvider för kompilering. Indatafilen kompileras till en körbar fil och eventuella kompileringsfel visas för konsolen.

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

Kommentarer

Den här klassen innehåller metoder som kan användas för att hämta instanser av implementeringarna Visual Basic ICodeGenerator och ICodeCompiler.

Note

Den här klassen innehåller ett länkbehov och ett arvskrav på klassnivå som gäller för alla medlemmar. En SecurityException utlöses när antingen den omedelbara anroparen eller den härledda klassen inte har fullständig förtroendebehörighet.

Konstruktorer

Name Description
VBCodeProvider()

Initierar en ny instans av VBCodeProvider klassen.

VBCodeProvider(IDictionary<String,String>)

Initierar en ny instans av VBCodeProvider klassen med hjälp av de angivna provideralternativen.

Egenskaper

Name Description
CanRaiseEvents

Hämtar ett värde som anger om komponenten kan generera en händelse.

(Ärvd från Component)
Container

Hämtar som IContainer innehåller Component.

(Ärvd från Component)
DesignMode

Hämtar ett värde som anger om det Component för närvarande är i designläge.

(Ärvd från Component)
Events

Hämtar listan över händelsehanterare som är kopplade till den här Component.

(Ärvd från Component)
FileExtension

Hämtar filnamnstillägget som ska användas när du skapar källkodsfiler.

LanguageOptions

Hämtar en språkfunktionsidentifierare.

Site

Hämtar eller ställer in ISite i Component.

(Ärvd från Component)

Metoder

Name Description
CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[])

Kompilerar en sammansättning baserat på träden System.CodeDom som finns i den angivna matrisen med objekt med hjälp av CodeCompileUnit de angivna kompilatorinställningarna.

(Ärvd från CodeDomProvider)
CompileAssemblyFromFile(CompilerParameters, String[])

Kompilerar en sammansättning från källkoden som finns i de angivna filerna med hjälp av de angivna kompilatorinställningarna.

(Ärvd från CodeDomProvider)
CompileAssemblyFromSource(CompilerParameters, String[])

Kompilerar en sammansättning från den angivna matrisen med strängar som innehåller källkod med hjälp av de angivna kompilatorinställningarna.

(Ärvd från CodeDomProvider)
CreateCompiler()
Föråldrad.

Hämtar en instans av Visual Basic kodkompilerare.

CreateEscapedIdentifier(String)

Skapar en undantagen identifierare för det angivna värdet.

(Ärvd från CodeDomProvider)
CreateGenerator()
Föråldrad.

Hämtar en instans av Visual Basic-kodgeneratorn.

CreateGenerator(String)

När den åsidosättas i en härledd klass skapar du en ny kodgenerator med det angivna filnamnet för utdata.

(Ärvd från CodeDomProvider)
CreateGenerator(TextWriter)

När den åsidosättas i en härledd klass skapar du en ny kodgenerator med angivet TextWriter för utdata.

(Ärvd från CodeDomProvider)
CreateObjRef(Type)

Skapar ett objekt som innehåller all relevant information som krävs för att generera en proxy som används för att kommunicera med ett fjärrobjekt.

(Ärvd från MarshalByRefObject)
CreateParser()
Föråldrad.

När du åsidosättas i en härledd klass skapar du en ny kodparser.

(Ärvd från CodeDomProvider)
CreateValidIdentifier(String)

Skapar en giltig identifierare för det angivna värdet.

(Ärvd från CodeDomProvider)
Dispose()

Släpper alla resurser som används av Component.

(Ärvd från Component)
Dispose(Boolean)

Släpper de ohanterade resurser som används av Component och släpper eventuellt de hanterade resurserna.

(Ärvd från Component)
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions)

Genererar kod för den angivna Code Document Object Model-kompileringsenheten (CodeDOM) och skickar den till den angivna textskrivaren med hjälp av de angivna alternativen.

(Ärvd från CodeDomProvider)
GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions)

Genererar kod för det angivna Code Document Object Model-uttrycket (CodeDOM) och skickar den till den angivna textskrivaren med de angivna alternativen.

(Ärvd från CodeDomProvider)
GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions)

Genererar kod för den angivna klassmedlemmen med hjälp av de angivna alternativen för textskrivare och kodgenerator.

GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)

Genererar kod för det angivna Code Document Object Model-namnområdet (CodeDOM) och skickar den till den angivna textskrivaren med de angivna alternativen.

(Ärvd från CodeDomProvider)
GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions)

Genererar kod för den angivna Code Document Object Model-instruktionen (CodeDOM) och skickar den till den angivna textskrivaren med hjälp av de angivna alternativen.

(Ärvd från CodeDomProvider)
GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions)

Genererar kod för den angivna Code Document Object Model-typdeklarationen (CodeDOM) och skickar den till den angivna textskrivaren med hjälp av de angivna alternativen.

(Ärvd från CodeDomProvider)
GetConverter(Type)

Hämtar en TypeConverter för den angivna typen av objekt.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetLifetimeService()

Hämtar det aktuella livslängdstjänstobjektet som styr livslängdsprincipen för den här instansen.

(Ärvd från MarshalByRefObject)
GetService(Type)

Returnerar ett objekt som representerar en tjänst som tillhandahålls av Component eller av dess Container.

(Ärvd från Component)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
GetTypeOutput(CodeTypeReference)

Hämtar den typ som anges av den angivna CodeTypeReference.

(Ärvd från CodeDomProvider)
InitializeLifetimeService()

Hämtar ett tjänstobjekt för livslängd för att styra livslängdsprincipen för den här instansen.

(Ärvd från MarshalByRefObject)
IsValidIdentifier(String)

Returnerar ett värde som anger om det angivna värdet är en giltig identifierare för det aktuella språket.

(Ärvd från CodeDomProvider)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
MemberwiseClone(Boolean)

Skapar en ytlig kopia av det aktuella MarshalByRefObject objektet.

(Ärvd från MarshalByRefObject)
Parse(TextReader)

Kompilerar koden som lästs från den angivna textströmmen till en CodeCompileUnit.

(Ärvd från CodeDomProvider)
Supports(GeneratorSupport)

Returnerar ett värde som anger om det angivna stöd för kodgenerering har angetts.

(Ärvd från CodeDomProvider)
ToString()

Returnerar ett String som innehåller namnet på Component, om det finns. Den här metoden bör inte åsidosättas.

(Ärvd från Component)

Händelser

Name Description
Disposed

Inträffar när komponenten tas bort av ett anrop till Dispose() metoden.

(Ärvd från Component)

Gäller för

Se även