CompilerError 类 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示编译器错误或警告。
public ref class CompilerErrorpublic class CompilerError[System.Serializable]
public class CompilerErrortype CompilerError = class[<System.Serializable>]
type CompilerError = classPublic 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() 方法的实现。 |