CompilerError Klass

Definition

Representerar ett kompilatorfel eller en varning.

public ref class CompilerError
public class CompilerError
[System.Serializable]
public class CompilerError
type CompilerError = class
[<System.Serializable>]
type CompilerError = class
Public Class CompilerError
Arv
CompilerError
Härledda
Attribut

Exempel

I följande exempel kompileras ett CodeDOM-programdiagram och ett exempel på hur du programmatiskt får åtkomst till CompilerError-data.

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

Kommentarer

CompilerError representerar ett kompilatorfel eller en varning som har returnerats av kompilatorn.

Note

Den här klassen innehåller ett arvskrav på klassnivå som gäller för alla medlemmar. En SecurityException genereras när den härledda klassen inte har fullständig behörighet. Mer information om arvskrav finns i Arvskrav.

Konstruktorer

Name Description
CompilerError()

Initierar en ny instans av CompilerError klassen.

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

Initierar en ny instans av klassen med det angivna filnamnet, raden, kolumnen, felnumret och feltexten CompilerError .

Egenskaper

Name Description
Column

Hämtar eller anger kolumnnumret där källan till felet inträffar.

ErrorNumber

Hämtar eller anger felnumret.

ErrorText

Hämtar eller anger texten i felmeddelandet.

FileName

Hämtar eller anger filnamnet för källfilen som innehåller den kod som orsakade felet.

IsWarning

Hämtar eller anger ett värde som anger om felet är en varning.

Line

Hämtar eller anger det radnummer där felkällan inträffar.

Metoder

Name Description
Equals(Object)

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

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Tillhandahåller en implementering av objektets ToString() -metod.

Gäller för

Se även