CSharpCodeProvider クラスとは? わかりやすく解説

CSharpCodeProvider クラス

C# コード ジェネレータC# コード コンパイラインスタンスへのアクセス提供します

名前空間: Microsoft.CSharp
アセンブリ: System (system.dll 内)
構文構文

Public Class CSharpCodeProvider
    Inherits CodeDomProvider
Dim instance As CSharpCodeProvider
public class CSharpCodeProvider : CodeDomProvider
public ref class CSharpCodeProvider : public
 CodeDomProvider
public class CSharpCodeProvider extends CodeDomProvider
public class CSharpCodeProvider extends
 CodeDomProvider
解説解説

このクラスは、C# ICodeGenerator 実装C# ICodeCompiler 実装インスタンス取得するために使用できるメソッド提供します

使用例使用例

C# または Visual Basic コード プロバイダ使用してソース ファイルコンパイルする例を次に示します。この例では、入力ファイル拡張子チェックし対応するコンパイルCSharpCodeProvider または VBCodeProvider を使用します入力ファイル実行可能ファイルコンパイルされますコンパイル エラーはすべてコンソール表示されます。

Public Shared Function CompileExecutable(sourceName
 As String) As Boolean
    Dim sourceFile As FileInfo = New
 FileInfo(sourceName)
    Dim provider As CodeDomProvider = Nothing
    Dim compileOk As Boolean
 = False

    ' Select the code provider based on the input file extension.
    If sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture)
 = ".CS"

        provider = New Microsoft.CSharp.CSharpCodeProvider()

    ElseIf sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture)
 = ".VB"

        provider = New Microsoft.VisualBasic.VBCodeProvider()

    Else
        Console.WriteLine("Source file must have a .cs or .vb
 extension")
    End If

    If Not provider Is Nothing

        ' Format the executable file name.
        ' Build the output assembly path using the current directory
        ' and <source>_cs.exe or <source>_vb.exe.

        Dim exeName As String
 = String.Format("{0}\{1}.exe",
 _
            System.Environment.CurrentDirectory, _
            sourceFile.Name.Replace(".", "_"))

        Dim cp As CompilerParameters = new
 CompilerParameters()

        ' Generate an executable instead of 
        ' a class library.
        cp.GenerateExecutable = True

        ' Specify the assembly file name to generate.
        cp.OutputAssembly = exeName
    
        ' Save the assembly as a physical file.
        cp.GenerateInMemory = False
    
        ' Set whether to treat all warnings as errors.
        cp.TreatWarningsAsErrors = False
 
        ' Invoke compilation of the source file.
        Dim cr As CompilerResults = provider.CompileAssemblyFromFile(cp,
 _
            sourceName)
    
        If cr.Errors.Count > 0
            ' Display compilation errors.
            Console.WriteLine("Errors building {0} into {1}",
 _
                sourceName, cr.PathToAssembly)

            Dim ce As CompilerError
            For Each ce In
 cr.Errors
                Console.WriteLine("  {0}", ce.ToString())
                Console.WriteLine()
            Next ce
        Else
            ' Display a successful compilation message.
            Console.WriteLine("Source {0} built into {1} successfully.",
 _
                sourceName, cr.PathToAssembly)
        End If
      
        ' Return the results of the compilation.
        If cr.Errors.Count > 0
            compileOk = False
        Else 
            compileOk = True
        End If
    End If
    return compileOk

End Function
public static bool CompileExecutable(String
 sourceName)
{
    FileInfo sourceFile = new FileInfo(sourceName);
    CodeDomProvider provider = null;
    bool compileOk = false;

    // Select the code provider based on the input file extension.
    if (sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture)
 == ".CS")
    {
        provider = new Microsoft.CSharp.CSharpCodeProvider();
    }
    else if (sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture)
 == ".VB")
    {
        provider = new Microsoft.VisualBasic.VBCodeProvider();
    }
    else 
    {
        Console.WriteLine("Source file must have a .cs or .vb extension");
    }

    if (provider != null)
    {

        // Format the executable file name.
        // Build the output assembly path using the current directory
        // and <source>_cs.exe or <source>_vb.exe.
 
        String exeName = String.Format(@"{0}\{1}.exe", 
            System.Environment.CurrentDirectory, 
            sourceFile.Name.Replace(".", "_"));

        CompilerParameters cp = new CompilerParameters();

        // Generate an executable instead of 
        // a class library.
        cp.GenerateExecutable = true;

        // Specify the assembly file name to generate.
        cp.OutputAssembly = exeName;
    
        // Save the assembly as a physical file.
        cp.GenerateInMemory = false;
    
        // Set whether to treat all warnings as errors.
        cp.TreatWarningsAsErrors = false;
 
        // Invoke compilation of the source file.
        CompilerResults cr = provider.CompileAssemblyFromFile(cp, 
            sourceName);
    
        if(cr.Errors.Count > 0)
        {
            // Display compilation errors.
            Console.WriteLine("Errors building {0} into {1}",  
                sourceName, cr.PathToAssembly);
            foreach(CompilerError ce in cr.Errors)
            {
                Console.WriteLine("  {0}", ce.ToString());
                Console.WriteLine();
            }
        }
        else
        {
            // Display a successful compilation message.
            Console.WriteLine("Source {0} built into {1} successfully."
,
                sourceName, cr.PathToAssembly);
        }
      
        // Return the results of the compilation.
        if (cr.Errors.Count > 0)
        {
            compileOk = false;
        }
        else 
        {
            compileOk = true;
        }
    }
    return compileOk;
}
.NET Framework のセキュリティ.NET Frameworkセキュリティ
継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.CodeDom.Compiler.CodeDomProvider
        Microsoft.CSharp.CSharpCodeProvider
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
CSharpCodeProvider メンバ
Microsoft.CSharp 名前空間
ICodeGenerator
ICodeCompiler
System.CodeDom
System.CodeDom.Compiler



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「CSharpCodeProvider クラス」の関連用語

CSharpCodeProvider クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



CSharpCodeProvider クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS