CompilerError 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示编译器错误或警告。
public ref class CompilerError
public class CompilerError
[System.Serializable]
public class CompilerError
type CompilerError = class
[<System.Serializable>]
type CompilerError = class
Public Class CompilerError
- 继承
-
CompilerError
- 派生
- 属性
示例
以下示例编译 CodeDOM 程序图,并提供如何以编程方式访问 CompilerError 数据的示例。
#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
注解
CompilerError 表示编译器已返回的编译器错误或警告。
注意
此类包含适用于所有成员的类级别的继承要求。 SecurityException当派生类没有完全信任权限时,将引发 。 有关继承需求的详细信息,请参阅 继承需求。
构造函数
CompilerError() |
初始化 CompilerError 类的新实例。 |
CompilerError(String, Int32, Int32, String, String) |
使用指定的文件名、行、列、错误号和错误文本初始化 CompilerError 类的新实例。 |
属性
Column |
获取或设置错误源所在的列号。 |
ErrorNumber |
获取或设置错误号。 |
ErrorText |
获取或设置错误消息的文本。 |
FileName |
获取或设置包含导致错误的代码的源文件的文件名。 |
IsWarning |
获取或设置一个值,该值指示错误是否是警告。 |
Line |
获取或设置错误源所在的行号。 |
方法
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
提供对象的 ToString() 方法的实现。 |