Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Stellt einen Compilerfehler oder eine Compilerwarnung dar.
Namespace: System.CodeDom.Compiler
Assembly: System (in system.dll)
Syntax
'Declaration
<SerializableAttribute> _
Public Class CompilerError
'Usage
Dim instance As CompilerError
[SerializableAttribute]
public class CompilerError
[SerializableAttribute]
public ref class CompilerError
/** @attribute SerializableAttribute() */
public class CompilerError
SerializableAttribute
public class CompilerError
Hinweise
CompilerError stellt einen Compilerfehler oder eine Compilerwarnung dar, die vom Compiler zurückgegeben wurde.
Hinweis
Diese Klasse enthält eine Vererbungsanforderung auf der Klassenebene, die auf alle Member angewendet wird. Wenn die abgeleitete Klasse keine Berechtigung mit voller Vertrauenswürdigkeit besitzt, wird eine SecurityException ausgelöst. Details zu Vererbungsanforderungen finden Sie unter Vererbungsforderungen.
Beispiel
Im folgenden Beispiel wird ein CodeDOM-Programmdiagramm kompiliert und das programmgesteuerte Zugreifen auf CompilerError-Daten dargestellt.
Imports System
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 New Microsoft.CSharp.CSharpCodeProvider()
' 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
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;
}
}
}
#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;
// Create a CSharpCodeCompiler.
ICodeCompiler^ compiler = provider->CreateCompiler();
// 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 = compiler->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 ] );
}
.NET Framework-Sicherheit
- SecurityPermission zum Ableiten von der CompilerError-Klasse. Anforderungswert: InheritanceDemand, Benannte Berechtigungssätze: FullTrust.
Vererbungshierarchie
System.Object
System.CodeDom.Compiler.CompilerError
Threadsicherheit
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
CompilerError-Member
System.CodeDom.Compiler-Namespace
CompilerErrorCollection