CompilerError Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje błąd kompilatora lub ostrzeżenie.
public ref class CompilerError
public class CompilerError
[System.Serializable]
public class CompilerError
type CompilerError = class
[<System.Serializable>]
type CompilerError = class
Public Class CompilerError
- Dziedziczenie
-
CompilerError
- Pochodne
- Atrybuty
Przykłady
Poniższy przykład kompiluje graf programu CodeDOM i przedstawia przykład programowego uzyskiwania dostępu do danych compilerError.
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
Uwagi
CompilerError reprezentuje błąd kompilatora lub ostrzeżenie, które zostało zwrócone przez kompilator.
Uwaga / Notatka
Ta klasa zawiera żądanie dziedziczenia na poziomie klasy, które ma zastosowanie do wszystkich składowych. Element jest SecurityException zgłaszany, gdy klasa pochodna nie ma uprawnień pełnego zaufania.
Konstruktory
| Nazwa | Opis |
|---|---|
| CompilerError() |
Inicjuje nowe wystąpienie klasy CompilerError. |
| CompilerError(String, Int32, Int32, String, String) |
Inicjuje nowe wystąpienie CompilerError klasy przy użyciu określonej nazwy pliku, wiersza, kolumny, numeru błędu i tekstu błędu. |
Właściwości
| Nazwa | Opis |
|---|---|
| Column |
Pobiera lub ustawia numer kolumny, w której występuje źródło błędu. |
| ErrorNumber |
Pobiera lub ustawia numer błędu. |
| ErrorText |
Pobiera lub ustawia tekst komunikatu o błędzie. |
| FileName |
Pobiera lub ustawia nazwę pliku źródłowego zawierającego kod, który spowodował błąd. |
| IsWarning |
Pobiera lub ustawia wartość wskazującą, czy błąd jest ostrzeżeniem. |
| Line |
Pobiera lub ustawia numer wiersza, w którym występuje źródło błędu. |
Metody
| Nazwa | Opis |
|---|---|
| Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
| GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
| GetType() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
| MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (Odziedziczone po Object) |
| ToString() |
Zapewnia implementację metody Object ToString() . |