次の方法で共有


CompilerError クラス

定義

コンパイラ エラーまたは警告を表します。

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;
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() メソッドの実装を提供します。

適用対象

こちらもご覧ください