CodeDomProvider.CreateProvider メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > CodeDomProvider.CreateProvider メソッドの意味・解説 

CodeDomProvider.CreateProvider メソッド

メモ : このメソッドは、.NET Framework version 2.0 で新しく追加されたものです。

指定した言語の CodeDomProvider インスタンスを取得します。

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

<ComVisibleAttribute(False)> _
Public Shared Function CreateProvider
 ( _
    language As String _
) As CodeDomProvider
Dim language As String
Dim returnValue As CodeDomProvider

returnValue = CodeDomProvider.CreateProvider(language)
[ComVisibleAttribute(false)] 
public static CodeDomProvider CreateProvider
 (
    string language
)
[ComVisibleAttribute(false)] 
public:
static CodeDomProvider^ CreateProvider (
    String^ language
)
/** @attribute ComVisibleAttribute(false) */ 
public static CodeDomProvider CreateProvider
 (
    String language
)
ComVisibleAttribute(false) 
public static function CreateProvider
 (
    language : String
) : CodeDomProvider

パラメータ

language

言語名。

戻り値
指定した言語名に対して実装される CodeDomProvider インスタンス。

例外例外
例外の種類条件

ConfigurationException

このコンピュータには、language の構成済みのプロバイダがありません。

ConfigurationErrorsException

language が null 参照 (Visual Basic では Nothing) です。

SecurityException

呼び出し元に、必要なアクセス許可がありません。

解説解説
メモメモ

ほとんどの場合、このメソッドを使用して、複数のプロバイダのいずれかをオプションで使用できるアプリケーション内に、コード プロバイダのインスタンスを作成します。CreateProvider を使用すると、インスタンス化するコード プロバイダを実行時に指定できます。使用するコード プロバイダがデザイン時にわかっている場合は、CreateProvider メソッドを使用するのではなく、そのコード プロバイダのインスタンスを作成します。

CreateProvider メソッドは、特定の言語名の CodeDomProvider インスタンスを返します。これは、言語プロバイダの種類を指定して、Activator.CreateInstance メソッドを呼び出すことと同様です。言語名の構成済みのプロバイダ実装を動的に検索する場合は、CreateProvider を使用します。

言語名に対して複数のプロバイダ実装が構成されている場合、CreateProvider は、最後に一致する構成要素のプロバイダ インスタンスを返します。

特定の言語プロバイダを実装する必要がある場合は、Activator.CreateInstance(Type,BindingFlags,Binder,Object[],CultureInfo) メソッド オーバーロードを使用します。たとえば、CreateProvider メソッドを使用して、言語名 "CSharp" をサポートするプロバイダ インスタンスを取得します。Activator.CreateInstance(Type,BindingFlags,Binder,Object[],CultureInfo) メソッド オーバーロードを使用して、Microsoft.CSharp.CSharpCodeProvider 実装に固有のプロバイダ インスタンスを取得します。ある言語の複数のコード プロバイダがあるときに、特定のコード プロバイダをインスタンス化する場合は、Activator.CreateInstance(Type,BindingFlags,Binder,Object[],CultureInfo,Object[]) メソッドを使用する必要があります。

IsDefinedLanguage メソッドは、少なくとも 1 つのプロバイダ実装が特定の言語をサポートしているどうかをチェックします。CreateProvider に言語名を渡す前に、IsDefinedLanguage を使用してその言語名を検証できます。サポートされていない言語名を CreateProvider に渡すと、System.Configuration.ConfigurationException がスローされます。

GetAllCompilerInfo メソッドを使用すると、コンピュータ上のすべての CodeDomProvider 実装を確認できます。これには、開発者やコンパイラ販売元によって提供され、マシン構成ファイル (Machine.config) の <system.codedom> 要素 で識別される追加の実装も含まれます。

CreateProvider メソッドは、特定の言語の CodeDomProvider 実装のインスタンスを返します。

言語名では、大文字と小文字は区別されません。

使用例使用例

入力言語の CodeDomProvider 実装を確認し、その言語プロバイダの構成済みの設定を表示するコード例を次に示します。

Dim provider As CodeDomProvider

' Check for a provider corresponding to the input language.  
If CodeDomProvider.IsDefinedLanguage(language) Then
   provider = CodeDomProvider.CreateProvider(language)
   
   ' Display information about this language provider.
   Console.WriteLine("Language provider:  {0}", _
       provider.ToString())
   Console.WriteLine()
   Console.WriteLine("  Default file extension:  {0}",
 _
       provider.FileExtension)
   Console.WriteLine()
   
   ' Get the compiler settings for this language.
   Dim langCompilerInfo As CompilerInfo = CodeDomProvider.GetCompilerInfo(language)
   Dim langCompilerConfig As CompilerParameters
 = langCompilerInfo.CreateDefaultCompilerParameters()
   
   Console.WriteLine("  Compiler options:        {0}",
 _
       langCompilerConfig.CompilerOptions)
   Console.WriteLine("  Compiler warning level:  {0}",
 _
       langCompilerConfig.WarningLevel)
Else
   ' Tell the user that the language provider was not found.
   Console.WriteLine("There is no provider configured for input
 language ""{0}"".",
 _
       language)
End If
CodeDomProvider provider;

// Check for a provider corresponding to the input language.  
if (CodeDomProvider.IsDefinedLanguage(language))
{
    provider = CodeDomProvider.CreateProvider(language);

    // Display information about this language provider.

    Console.WriteLine("Language provider:  {0}", 
        provider.ToString());
    Console.WriteLine();
    Console.WriteLine("  Default file extension:  {0}", 
        provider.FileExtension);
    Console.WriteLine();

    // Get the compiler settings for this language.

    CompilerInfo langCompilerInfo = CodeDomProvider.GetCompilerInfo(language);
    CompilerParameters langCompilerConfig = langCompilerInfo.CreateDefaultCompilerParameters();

    Console.WriteLine("  Compiler options:        {0}", 
        langCompilerConfig.CompilerOptions);
    Console.WriteLine("  Compiler warning level:  {0}", 
        langCompilerConfig.WarningLevel);
}
else
{
    // Tell the user that the language provider was not found.
    Console.WriteLine("There is no provider configured for
 input language \"{0}\".", 
        language);
}
CodeDomProvider^ provider = nullptr;

// Check for a provider corresponding to the input language.  
if ( CodeDomProvider::IsDefinedLanguage( language ) )
{
   provider = CodeDomProvider::CreateProvider( language );
   if ( provider )
   {
      
      // Display information about this language provider.
      Console::WriteLine( "Language provider:  {0}", provider->ToString()
 );
      Console::WriteLine();
      Console::WriteLine( "  Default file extension:  {0}", provider->FileExtension
 );
      Console::WriteLine();
      
      // Get the compiler settings for this language.
      CompilerInfo^ langCompilerInfo = CodeDomProvider::GetCompilerInfo( language
 );
      if ( langCompilerInfo )
      {
         CompilerParameters^ langCompilerConfig = langCompilerInfo->CreateDefaultCompilerParameters();
         if ( langCompilerConfig )
         {
            Console::WriteLine( "  Compiler options:        {0}", langCompilerConfig->CompilerOptions
 );
            Console::WriteLine( "  Compiler warning level:  {0}", langCompilerConfig->WarningLevel.ToString()
 );
         }
      }
   }
}

if ( provider == nullptr )
{
   
   // Tell the user that the language provider was not found.
   Console::WriteLine(  "There is no provider configured for
 input language \"{0}\".", language );
}


.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
CodeDomProvider クラス
CodeDomProvider メンバ
System.CodeDom.Compiler 名前空間
IsDefinedLanguage



英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

「CodeDomProvider.CreateProvider メソッド」の関連用語

CodeDomProvider.CreateProvider メソッドのお隣キーワード
検索ランキング

   

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



CodeDomProvider.CreateProvider メソッドのページの著作権

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

©2026 GRAS Group, Inc.RSS