VBCodeProvider Klasa

Definicja

Zapewnia dostęp do wystąpień generatora kodu Visual Basic i kompilatora kodu.Provides access to instances of the Visual Basic code generator and code compiler.

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
Dziedziczenie

Przykłady

Poniższy przykład używa dostawcy kodu w języku C# lub Visual Basic do kompilowania pliku źródłowego.The following example uses either the C# or Visual Basic code provider to compile a source file. Przykład sprawdza rozszerzenie pliku wejściowego i używa odpowiedniego CSharpCodeProvider lub VBCodeProvider do kompilacji.The example checks the input file extension and uses the corresponding CSharpCodeProvider or VBCodeProvider for compilation. Plik wejściowy jest kompilowany do pliku wykonywalnego, a wszystkie błędy kompilacji są wyświetlane w konsoli programu.The input file is compiled into an executable file, and any compilation errors are displayed to the 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

Uwagi

Ta klasa udostępnia metody, których można użyć do pobierania wystąpień Visual Basic ICodeGenerator i ICodeCompiler implementacji.This class provides methods that can be used to retrieve instances of the Visual Basic ICodeGenerator and ICodeCompiler implementations.

Uwaga

Ta klasa zawiera żądanie łącza i dziedziczenia na poziomie klasy stosowane do wszystkich składowych.This class contains a link demand and an inheritance demand at the class level that applies to all members. SecurityExceptionWystępuje, gdy bezpośredni obiekt wywołujący lub Klasa pochodna nie ma uprawnienia pełnego zaufania.A SecurityException is thrown when either the immediate caller or the derived class does not have full-trust permission.

Konstruktory

VBCodeProvider()

Inicjuje nowe wystąpienie klasy VBCodeProvider.Initializes a new instance of the VBCodeProvider class.

VBCodeProvider(IDictionary<String,String>)

Inicjuje nowe wystąpienie VBCodeProvider klasy przy użyciu określonych opcji dostawcy.Initializes a new instance of the VBCodeProvider class by using the specified provider options.

Właściwości

CanRaiseEvents

Pobiera wartość wskazującą, czy składnik może zgłosić zdarzenie.Gets a value indicating whether the component can raise an event.

(Odziedziczone po Component)
Container

Pobiera IContainer , który zawiera Component .Gets the IContainer that contains the Component.

(Odziedziczone po Component)
DesignMode

Pobiera wartość wskazującą, czy Component jest aktualnie w trybie projektowania.Gets a value that indicates whether the Component is currently in design mode.

(Odziedziczone po Component)
Events

Pobiera listę programów obsługi zdarzeń, które są dołączone do tego elementu Component .Gets the list of event handlers that are attached to this Component.

(Odziedziczone po Component)
FileExtension

Pobiera rozszerzenie nazwy pliku do użycia podczas tworzenia plików kodu źródłowego.Gets the file name extension to use when creating source code files.

LanguageOptions

Pobiera identyfikator funkcji języka.Gets a language features identifier.

Site

Pobiera lub ustawia wartość ISite Component .Gets or sets the ISite of the Component.

(Odziedziczone po Component)

Metody

CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[])

Kompiluje zestaw na podstawie System.CodeDom drzew zawartych w określonej tablicy CodeCompileUnit obiektów przy użyciu określonych ustawień kompilatora.Compiles an assembly based on the System.CodeDom trees contained in the specified array of CodeCompileUnit objects, using the specified compiler settings.

(Odziedziczone po CodeDomProvider)
CompileAssemblyFromFile(CompilerParameters, String[])

Kompiluje zestaw z kodu źródłowego zawartego w określonych plikach przy użyciu określonych ustawień kompilatora.Compiles an assembly from the source code contained in the specified files, using the specified compiler settings.

(Odziedziczone po CodeDomProvider)
CompileAssemblyFromSource(CompilerParameters, String[])

Kompiluje zestaw z określonej tablicy ciągów zawierających kod źródłowy przy użyciu określonych ustawień kompilatora.Compiles an assembly from the specified array of strings containing source code, using the specified compiler settings.

(Odziedziczone po CodeDomProvider)
CreateCompiler()
Nieaktualne.
Nieaktualne.

Pobiera wystąpienie kompilatora kodu Visual Basic.Gets an instance of the Visual Basic code compiler.

CreateEscapedIdentifier(String)

Tworzy identyfikator o zmienionym znaczeniu dla określonej wartości.Creates an escaped identifier for the specified value.

(Odziedziczone po CodeDomProvider)
CreateGenerator()
Nieaktualne.
Nieaktualne.

Pobiera wystąpienie generatora kodu Visual Basic.Gets an instance of the Visual Basic code generator.

CreateGenerator(String)

Gdy jest zastępowany w klasie pochodnej, tworzy nowy generator kodu przy użyciu określonej nazwy pliku dla danych wyjściowych.When overridden in a derived class, creates a new code generator using the specified file name for output.

(Odziedziczone po CodeDomProvider)
CreateGenerator(TextWriter)

Gdy jest zastępowany w klasie pochodnej, tworzy nowy generator kodu przy użyciu określonego TextWriter dla danych wyjściowych.When overridden in a derived class, creates a new code generator using the specified TextWriter for output.

(Odziedziczone po CodeDomProvider)
CreateObjRef(Type)

Tworzy obiekt, który zawiera wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikacji z obiektem zdalnym.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Odziedziczone po MarshalByRefObject)
CreateParser()
Nieaktualne.
Nieaktualne.

Gdy jest zastępowany w klasie pochodnej, tworzy nowy parser kodu.When overridden in a derived class, creates a new code parser.

(Odziedziczone po CodeDomProvider)
CreateValidIdentifier(String)

Tworzy prawidłowy identyfikator dla określonej wartości.Creates a valid identifier for the specified value.

(Odziedziczone po CodeDomProvider)
Dispose()

Zwalnia wszelkie zasoby używane przez element Component.Releases all resources used by the Component.

(Odziedziczone po Component)
Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element Component i opcjonalnie zwalnia zasoby zarządzane.Releases the unmanaged resources used by the Component and optionally releases the managed resources.

(Odziedziczone po Component)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions)

Generuje kod dla określonej jednostki kompilacji Code Document Object Model (CodeDOM) i wysyła ją do określonego składnika zapisywania tekstu przy użyciu określonych opcji.Generates code for the specified Code Document Object Model (CodeDOM) compilation unit and sends it to the specified text writer, using the specified options.

(Odziedziczone po CodeDomProvider)
GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions)

Generuje kod dla określonego wyrażenia Code Document Object Model (CodeDOM) i wysyła go do określonego składnika zapisywania tekstu przy użyciu określonych opcji.Generates code for the specified Code Document Object Model (CodeDOM) expression and sends it to the specified text writer, using the specified options.

(Odziedziczone po CodeDomProvider)
GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions)

Generuje kod dla określonego elementu członkowskiego klasy przy użyciu określonych opcji modułu zapisywania tekstu i generatora kodu.Generates code for the specified class member using the specified text writer and code generator options.

GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions)

Generuje kod dla określonej deklaracji składowej Code Document Object Model (CodeDOM) i wysyła ją do określonego składnika zapisywania tekstu przy użyciu określonych opcji.Generates code for the specified Code Document Object Model (CodeDOM) member declaration and sends it to the specified text writer, using the specified options.

(Odziedziczone po CodeDomProvider)
GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)

Generuje kod dla określonej przestrzeni nazw Code Document Object Model (CodeDOM) i wysyła go do określonego składnika zapisywania tekstu przy użyciu określonych opcji.Generates code for the specified Code Document Object Model (CodeDOM) namespace and sends it to the specified text writer, using the specified options.

(Odziedziczone po CodeDomProvider)
GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions)

Generuje kod dla określonej instrukcji Code Document Object Model (CodeDOM) i wysyła ją do określonego składnika zapisywania tekstu przy użyciu określonych opcji.Generates code for the specified Code Document Object Model (CodeDOM) statement and sends it to the specified text writer, using the specified options.

(Odziedziczone po CodeDomProvider)
GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions)

Generuje kod dla określonej deklaracji typu Code Document Object Model (CodeDOM) i wysyła go do określonego składnika zapisywania tekstu przy użyciu określonych opcji.Generates code for the specified Code Document Object Model (CodeDOM) type declaration and sends it to the specified text writer, using the specified options.

(Odziedziczone po CodeDomProvider)
GetConverter(Type)

Pobiera TypeConverter dla określonego typu obiektu.Gets a TypeConverter for the specified type of object.

GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetLifetimeService()
Nieaktualne.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Odziedziczone po MarshalByRefObject)
GetService(Type)

Zwraca obiekt, który reprezentuje usługę dostarczoną przez Component lub przez Container .Returns an object that represents a service provided by the Component or by its Container.

(Odziedziczone po Component)
GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
GetTypeOutput(CodeTypeReference)

Pobiera typ wskazany przez określony CodeTypeReference .Gets the type indicated by the specified CodeTypeReference.

(Odziedziczone po CodeDomProvider)
InitializeLifetimeService()
Nieaktualne.

Uzyskuje obiekt usługi istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia.Obtains a lifetime service object to control the lifetime policy for this instance.

(Odziedziczone po MarshalByRefObject)
IsValidIdentifier(String)

Zwraca wartość wskazującą, czy określona wartość jest prawidłowym identyfikatorem bieżącego języka.Returns a value that indicates whether the specified value is a valid identifier for the current language.

(Odziedziczone po CodeDomProvider)
MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy skróconą kopię bieżącego MarshalByRefObject obiektu.Creates a shallow copy of the current MarshalByRefObject object.

(Odziedziczone po MarshalByRefObject)
Parse(TextReader)

Kompiluje kod odczytywany z określonego strumienia tekstu do CodeCompileUnit .Compiles the code read from the specified text stream into a CodeCompileUnit.

(Odziedziczone po CodeDomProvider)
Supports(GeneratorSupport)

Zwraca wartość wskazującą, czy podano określoną obsługę generowania kodu.Returns a value indicating whether the specified code generation support is provided.

(Odziedziczone po CodeDomProvider)
ToString()

Zwraca wartość String zawierającą nazwę Component (jeśli istnieje).Returns a String containing the name of the Component, if any. Ta metoda nie powinna być przesłaniana.This method should not be overridden.

(Odziedziczone po Component)

Zdarzenia

Disposed

Występuje, gdy składnik zostanie usunięty przez wywołanie Dispose() metody.Occurs when the component is disposed by a call to the Dispose() method.

(Odziedziczone po Component)

Dotyczy

Zobacz też