Freigeben über


CompilerError Klasse

Definition

Stellt einen Compilerfehler oder eine Compilerwarnung dar.

public ref class CompilerError
public class CompilerError
[System.Serializable]
public class CompilerError
type CompilerError = class
[<System.Serializable>]
type CompilerError = class
Public Class CompilerError
Vererbung
CompilerError
Abgeleitet
Attribute

Beispiele

Im folgenden Beispiel wird ein CodeDOM-Programmdiagramm kompiliert und ein Beispiel für den programmgesteuerten Zugriff auf CompilerError-Daten bereitgestellt.

#using <System.dll>

using namespace System;
using namespace System::CodeDom;
using namespace System::CodeDom::Compiler;
using namespace Microsoft::CSharp;
CodeCompileUnit^ GetCompileUnit()
{
   
   // Create a compile unit to contain a CodeDOM graph.
   CodeCompileUnit^ cu = gcnew CodeCompileUnit;
   
   // Create a namespace named TestSpace.
   CodeNamespace^ cn = gcnew CodeNamespace( "TestSpace" );
   
   // Declare a new type named TestClass. 
   CodeTypeDeclaration^ cd = gcnew CodeTypeDeclaration( "TestClass" );
   
   // Declare a new member string field named TestField.
   CodeMemberField^ cmf = gcnew CodeMemberField( "System.String","TestField" );
   
   // Add the field to the type.
   cd->Members->Add( cmf );
   
   // Declare a new member method named TestMethod.
   CodeMemberMethod^ cm = gcnew CodeMemberMethod;
   cm->Name = "TestMethod";
   
   // Declare a string variable named TestVariable.
   CodeVariableDeclarationStatement^ cvd = gcnew CodeVariableDeclarationStatement( "System.String1","TestVariable" );
   cm->Statements->Add( cvd );
   
   // Cast the TestField reference expression to string and assign it to the TestVariable.
   CodeAssignStatement^ ca = gcnew CodeAssignStatement( gcnew CodeVariableReferenceExpression( "TestVariable" ),gcnew CodeCastExpression( "System.String2",gcnew CodeFieldReferenceExpression( gcnew CodeThisReferenceExpression,"TestField" ) ) );
   
   // This code can be used to generate the following code in C#:
   //            TestVariable = ((string)(this.TestField));
   cm->Statements->Add( ca );
   
   // Add the TestMethod member to the TestClass type.
   cd->Members->Add( cm );
   
   // Add the TestClass type to the namespace.
   cn->Types->Add( cd );
   
   // Add the TestSpace namespace to the compile unit.
   cu->Namespaces->Add( cn );
   return cu;
}

int main()
{
   
   // Output some program information using Console.WriteLine.
   Console::WriteLine( "This program compiles a CodeDOM program that incorrectly declares multiple data" );
   Console::WriteLine( "types to demonstrate handling compiler errors programmatically." );
   Console::WriteLine( "" );
   
   // Compile the CodeCompileUnit retrieved from the GetCompileUnit() method.
   //CSharpCodeProvider ^ provider = gcnew Microsoft::CSharp::CSharpCodeProvider;
   CodeDomProvider ^ provider = CodeDomProvider::CreateProvider("CSharp");
   
   // Initialize a CompilerParameters with the options for compilation.
   array<String^>^assemblies = {"System.dll"};
   CompilerParameters^ options = gcnew CompilerParameters( assemblies,"output.exe" );
   
   // Compile the CodeDOM graph and store the results in a CompilerResults.
   CompilerResults^ results = provider->CompileAssemblyFromDom( options, GetCompileUnit() );
   
   // Compilation produces errors. Print out each error.
   Console::WriteLine( "Listing errors from compilation: " );
   Console::WriteLine( "" );
   for ( int i = 0; i < results->Errors->Count; i++ )
      Console::WriteLine( results->Errors[ i ] );
}
using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using Microsoft.CSharp;

namespace CompilerError_Example
{
    public class Class1
    {		
        [STAThread]
        static void Main(string[] args)			
        {
            // Output some program information using Console.WriteLine.
            Console.WriteLine("This program compiles a CodeDOM program that incorrectly declares multiple data");
            Console.WriteLine("types to demonstrate handling compiler errors programmatically.");
            Console.WriteLine("");

            // Compile the CodeCompileUnit retrieved from the GetCompileUnit() method.
            CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider();

            // Initialize a CompilerParameters with the options for compilation.
            string[] assemblies = new String[] {"System.dll"};
            CompilerParameters options = new CompilerParameters( assemblies, "output.exe");

            // Compile the CodeDOM graph and store the results in a CompilerResults.
            CompilerResults results = provider.CompileAssemblyFromDom(options, GetCompileUnit());

            // Compilation produces errors. Print out each error.
            Console.WriteLine("Listing errors from compilation: ");
            Console.WriteLine("");
                for( int i=0; i<results.Errors.Count; i++)
                Console.WriteLine(results.Errors[i].ToString());			
        }

        public static CodeCompileUnit GetCompileUnit()
        {
            // Create a compile unit to contain a CodeDOM graph.
            CodeCompileUnit cu = new CodeCompileUnit();

            // Create a namespace named TestSpace.
            CodeNamespace cn = new CodeNamespace("TestSpace");		

            // Declare a new type named TestClass.	
            CodeTypeDeclaration cd = new CodeTypeDeclaration("TestClass");

            // Declare a new member string field named TestField.
            CodeMemberField cmf = new CodeMemberField("System.String", "TestField");

            // Add the field to the type.
            cd.Members.Add(cmf);

            // Declare a new member method named TestMethod.
            CodeMemberMethod cm = new CodeMemberMethod();
            cm.Name = "TestMethod";

            // Declare a string variable named TestVariable.
            CodeVariableDeclarationStatement cvd = new CodeVariableDeclarationStatement("System.String1", "TestVariable");
            cm.Statements.Add(cvd);

            // Cast the TestField reference expression to string and assign it to the TestVariable.
            CodeAssignStatement ca = new CodeAssignStatement(new CodeVariableReferenceExpression("TestVariable"),
                new CodeCastExpression("System.String2", new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "TestField")));

            // This code can be used to generate the following code in C#:
            //            TestVariable = ((string)(this.TestField));

            cm.Statements.Add(ca);

            // Add the TestMethod member to the TestClass type.
            cd.Members.Add(cm);

            // Add the TestClass type to the namespace.
            cn.Types.Add(cd);

            // Add the TestSpace namespace to the compile unit.
            cu.Namespaces.Add(cn);
            return cu;
        }
    }
}
Imports System.CodeDom
Imports System.CodeDom.Compiler
Imports Microsoft.CSharp

Namespace CompilerError_Example
    _
    Class Class1

        Shared Sub Main()
            ' Output some program information using Console.WriteLine.
            Console.WriteLine("This program compiles a CodeDOM program that incorrectly declares multiple data")
            Console.WriteLine("types to demonstrate handling compiler errors programatically.")
            Console.WriteLine("")

            ' Compile the CodeCompileUnit retrieved from the GetCompileUnit() method.
            Dim provider As CodeDomProvider
            provider = CodeDomProvider.CreateProvider("CSharp")

            ' Initialize a CompilerParameters with the options for compilation.
            Dim assemblies() As String = New [String]() {"System.dll"}
            Dim options As New CompilerParameters(assemblies, "output.exe")

            ' Compile the CodeDOM graph and store the results in a CompilerResults.
            Dim results As CompilerResults = provider.CompileAssemblyFromDom(options, GetCompileUnit())

            ' Compilation produces errors. Print out each error.
            Console.WriteLine("Listing errors from compilation: ")
            Console.WriteLine("")
            Dim i As Integer
            For i = 0 To results.Errors.Count - 1
                Console.WriteLine(results.Errors(i).ToString())
            Next i
        End Sub

        Public Shared Function GetCompileUnit() As CodeCompileUnit
            ' Create a compile unit to contain a CodeDOM graph.
            Dim cu As New CodeCompileUnit()

            ' Create a namespace named TestSpace.
            Dim cn As New CodeNamespace("TestSpace")

            ' Declare a new type named TestClass.
            Dim cd As New CodeTypeDeclaration("TestClass")

            ' Declare a new member string field named TestField.
            Dim cmf As New CodeMemberField("System.String", "TestField")

            ' Add the field to the type.
            cd.Members.Add(cmf)

            ' Declare a new member method named TestMethod.
            Dim cm As New CodeMemberMethod()
            cm.Name = "TestMethod"

            ' Declare a string variable named TestVariable.
            Dim cvd As New CodeVariableDeclarationStatement("System.String1", "TestVariable")
            cm.Statements.Add(cvd)

            ' Cast the TestField reference expression to string and assign it to the TestVariable.
            Dim ca As New CodeAssignStatement(New CodeVariableReferenceExpression("TestVariable"), New CodeCastExpression("System.String2", New CodeFieldReferenceExpression(New CodeThisReferenceExpression(), "TestField")))

            ' This code can be used to generate the following code in C#:
            '            TestVariable = ((string)(this.TestField));

            cm.Statements.Add(ca)
            ' Add the TestMethod member to the TestClass type.
            cd.Members.Add(cm)

            ' Add the TestClass type to the namespace.
            cn.Types.Add(cd)
            ' Add the TestSpace namespace to the compile unit.
            cu.Namespaces.Add(cn)
            Return cu
        End Function
    End Class
End Namespace

Hinweise

CompilerError stellt einen Compilerfehler oder eine Warnung dar, die vom Compiler zurückgegeben wurde.

Hinweis

Diese Klasse enthält eine Vererbungsanforderung auf Klassenebene, die für alle Member gilt. Ein SecurityException wird ausgelöst, wenn die abgeleitete Klasse nicht über voll vertrauenswürdige Berechtigungen verfügt. Ausführliche Informationen zu Vererbungsanforderungen finden Sie unter Vererbungsanforderungen.

Konstruktoren

CompilerError()

Initialisiert eine neue Instanz der CompilerError-Klasse.

CompilerError(String, Int32, Int32, String, String)

Initialisiert eine neue Instanz der CompilerError-Klasse mithilfe der Angaben für Dateiname, Zeile, Spalte, Fehlernummer und Fehlertext.

Eigenschaften

Column

Ruft die Nummer der Spalte ab, in der die Fehlerquelle auftritt, oder legt diese fest.

ErrorNumber

Ruft die Fehlernummer ab oder legt diese fest.

ErrorText

Ruft den Text der Fehlermeldung ab oder legt diesen fest.

FileName

Ruft den Dateinamen der Quelldatei mit dem Code ab, der den Fehler verursacht hat, oder legt diesen fest.

IsWarning

Ruft einen Wert ab, der angibt, ob der Fehler eine Warnung ist, oder legt diesen fest.

Line

Ruft die Nummer der Zeile ab, in der die Fehlerquelle auftritt, oder legt diese fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Stellt eine Implementierung der ToString()-Methode des Objekts bereit.

Gilt für:

Weitere Informationen