Udostępnij za pośrednictwem


VBCodeProvider Klasa

Definicja

Zapewnia dostęp do wystąpień generatora kodu Visual Basic i kompilatora kodu.

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

W poniższym przykładzie użyto dostawcy kodu C# lub Visual Basic do skompilowania pliku źródłowego. Przykład sprawdza rozszerzenie pliku wejściowego i używa odpowiedniego polecenia CSharpCodeProvider lub VBCodeProvider do kompilacji. Plik wejściowy jest kompilowany w pliku wykonywalnym, a wszelkie błędy kompilacji są wyświetlane w konsoli programu .

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ń języka Visual Basic ICodeGenerator i ICodeCompiler implementacji.

Uwaga

Ta klasa zawiera żądanie łącza i dziedziczenia na poziomie klasy stosowane do wszystkich składowych. Element jest SecurityException zgłaszany, gdy bezpośredni obiekt wywołujący lub klasa pochodna nie ma uprawnień pełnego zaufania.

Konstruktory

VBCodeProvider()

Inicjuje nowe wystąpienie klasy VBCodeProvider.

VBCodeProvider(IDictionary<String,String>)

Inicjuje VBCodeProvider nowe wystąpienie klasy przy użyciu określonych opcji dostawcy.

Właściwości

CanRaiseEvents

Pobiera wartość wskazującą, czy składnik może zgłosić zdarzenie.

(Odziedziczone po Component)
Container

Pobiera element IContainer zawierający element Component.

(Odziedziczone po Component)
DesignMode

Pobiera wartość wskazującą, czy Component element jest obecnie w trybie projektowania.

(Odziedziczone po Component)
Events

Pobiera listę programów obsługi zdarzeń dołączonych do tego Componentelementu .

(Odziedziczone po Component)
FileExtension

Pobiera rozszerzenie nazwy pliku do użycia podczas tworzenia plików kodu źródłowego.

LanguageOptions

Pobiera identyfikator funkcji języka.

Site

Pobiera lub ustawia ISite element .Component

(Odziedziczone po Component)

Metody

CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[])

Kompiluje zestaw na System.CodeDom podstawie drzew zawartych w określonej tablicy CodeCompileUnit obiektów przy użyciu określonych ustawień kompilatora.

(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.

(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.

(Odziedziczone po CodeDomProvider)
CreateCompiler()
Przestarzałe.
Przestarzałe.

Pobiera wystąpienie kompilatora kodu Visual Basic.

CreateEscapedIdentifier(String)

Tworzy identyfikator ucieczki dla określonej wartości.

(Odziedziczone po CodeDomProvider)
CreateGenerator()
Przestarzałe.
Przestarzałe.

Pobiera wystąpienie generatora kodu Visual Basic.

CreateGenerator(String)

Po zastąpieniu w klasie pochodnej tworzy nowy generator kodu przy użyciu określonej nazwy pliku dla danych wyjściowych.

(Odziedziczone po CodeDomProvider)
CreateGenerator(TextWriter)

Po przesłonięciu w klasie pochodnej tworzy nowy generator kodu przy użyciu określonego TextWriter dla danych wyjściowych.

(Odziedziczone po CodeDomProvider)
CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
CreateParser()
Przestarzałe.
Przestarzałe.

Po przesłonięciu w klasie pochodnej tworzy nowy analizator kodu.

(Odziedziczone po CodeDomProvider)
CreateValidIdentifier(String)

Tworzy prawidłowy identyfikator dla określonej wartości.

(Odziedziczone po CodeDomProvider)
Dispose()

Zwalnia wszelkie zasoby używane przez element Component.

(Odziedziczone po Component)
Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element Component i opcjonalnie zwalnia zasoby zarządzane.

(Odziedziczone po Component)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

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

Generuje kod dla określonej jednostki kompilacji Code Document Object Model (CodeDOM) i wysyła go do określonego modułu zapisywania tekstu przy użyciu określonych opcji.

(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 modułu zapisywania tekstu przy użyciu określonych opcji.

(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.

GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions)

Generuje kod dla określonej deklaracji składowej Code Document Object Model (CodeDOM) i wysyła go do określonego modułu zapisywania tekstu przy użyciu określonych opcji.

(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 modułu zapisywania tekstu przy użyciu określonych opcji.

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

Generuje kod dla określonej instrukcji Code Document Object Model (CodeDOM) i wysyła go do określonego modułu zapisywania tekstu przy użyciu określonych opcji.

(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 modułu zapisywania tekstu przy użyciu określonych opcji.

(Odziedziczone po CodeDomProvider)
GetConverter(Type)

Pobiera element TypeConverter dla określonego typu obiektu.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLifetimeService()
Przestarzałe.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetService(Type)

Zwraca obiekt reprezentujący usługę dostarczaną przez Component obiekt lub przez obiekt Container.

(Odziedziczone po Component)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
GetTypeOutput(CodeTypeReference)

Pobiera typ wskazany przez określony CodeTypeReferenceelement .

(Odziedziczone po CodeDomProvider)
InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia, aby kontrolować zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
IsValidIdentifier(String)

Zwraca wartość wskazującą, czy określona wartość jest prawidłowym identyfikatorem bieżącego języka.

(Odziedziczone po CodeDomProvider)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
Parse(TextReader)

Kompiluje kod odczytywany ze strumienia określonego tekstu do elementu CodeCompileUnit.

(Odziedziczone po CodeDomProvider)
Supports(GeneratorSupport)

Zwraca wartość wskazującą, czy podana jest obsługa generowania kodu.

(Odziedziczone po CodeDomProvider)
ToString()

Zwraca wartość String zawierającą nazwę Componentobiektu , jeśli istnieje. Ta metoda nie powinna być zastępowana.

(Odziedziczone po Component)

Zdarzenia

Disposed

Występuje, gdy składnik jest usuwany przez wywołanie Dispose() metody .

(Odziedziczone po Component)

Dotyczy

Zobacz też