CodeDomProvider.IsDefinedExtension(String) Method

Definition

Tests whether a file name extension has an associated CodeDomProvider implementation configured on the computer.

public:
 static bool IsDefinedExtension(System::String ^ extension);
public static bool IsDefinedExtension (string extension);
[System.Runtime.InteropServices.ComVisible(false)]
public static bool IsDefinedExtension (string extension);
static member IsDefinedExtension : string -> bool
[<System.Runtime.InteropServices.ComVisible(false)>]
static member IsDefinedExtension : string -> bool
Public Shared Function IsDefinedExtension (extension As String) As Boolean

Parameters

extension
String

A file name extension.

Returns

true if a CodeDomProvider implementation is configured for the specified file name extension; otherwise, false.

Attributes

Exceptions

The extension is null.

The caller does not have the required permission.

Examples

The following code example determines the CodeDomProvider implementation for an input file name extension and displays the configured settings for the language provider. This code example is part of a larger example provided for the CompilerInfo class.

if (  !fileExtension->StartsWith(  "." ) )
   fileExtension = String::Concat( ".", fileExtension );

// Get the language associated with the file extension.
CodeDomProvider^ provider = nullptr;
if ( CodeDomProvider::IsDefinedExtension( fileExtension ) )
{
   String^ language = CodeDomProvider::GetLanguageFromExtension( fileExtension );
   if ( language )
      Console::WriteLine( "The language \"{0}\" is associated with file extension \"{1}\"\n",
                           language, fileExtension );

   // Check for a corresponding language provider.
   if ( language && CodeDomProvider::IsDefinedLanguage( language ) )
   {
      provider = CodeDomProvider::CreateProvider( language );
      if ( provider )
      {
         // Display information about this language provider.
         Console::WriteLine( "Language provider:  {0}\n", provider->ToString() );
         
         // 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 language provider associated with input file extension \"{0}\".", fileExtension );
if (fileExtension[0] != '.')
{
    fileExtension = "." + fileExtension;
}

// Get the language associated with the file extension.
if (CodeDomProvider.IsDefinedExtension(fileExtension))
{
    CodeDomProvider provider;
    String language = CodeDomProvider.GetLanguageFromExtension(fileExtension);

    Console.WriteLine("The language \"{0}\" is associated with file extension \"{1}\"",
        language, fileExtension);
    Console.WriteLine();

    // Next, check for a corresponding language provider.

    if (CodeDomProvider.IsDefinedLanguage(language))
    {
        provider = CodeDomProvider.CreateProvider(language);

        // Display information about this language provider.

        Console.WriteLine("Language provider:  {0}",
            provider.ToString());
        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 language provider associated with input file extension \"{0}\".",
        fileExtension);
}
If Not fileExtension.StartsWith(".") Then
   fileExtension = "." + fileExtension
End If

' Get the language associated with the file extension.
If CodeDomProvider.IsDefinedExtension(fileExtension) Then
   Dim provider As CodeDomProvider
   Dim language As String = CodeDomProvider.GetLanguageFromExtension(fileExtension)
   
   Console.WriteLine("The language ""{0}"" is associated with file extension ""{1}""", _
       language, fileExtension)
   Console.WriteLine()
   
   ' Check for a corresponding language provider.
   If CodeDomProvider.IsDefinedLanguage(language) Then
      provider = CodeDomProvider.CreateProvider(language)
      
      ' Display information about this language provider.
      Console.WriteLine("Language provider:  {0}", _
         provider.ToString())
      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)
   End If
Else
   ' Tell the user that the language provider was not found.
   Console.WriteLine("There is no language provider associated with input file extension ""{0}"".", fileExtension)
End If

Remarks

The <system.codedom> Element in the machine configuration file (Machine.config) contains the language provider and compiler configuration settings for each CodeDomProvider implementation on the computer. The IsDefinedExtension method searches the provider configuration elements for the specified file name extension.

File name extensions are case-insensitive.

Applies to

See also