CodeDomProvider.GetLanguageFromExtension(String) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca nazwę języka skojarzona z określonym rozszerzeniem nazwy pliku zgodnie z konfiguracją kompilatora CodeDomProvider .
public:
static System::String ^ GetLanguageFromExtension(System::String ^ extension);
public static string GetLanguageFromExtension (string extension);
[System.Runtime.InteropServices.ComVisible(false)]
public static string GetLanguageFromExtension (string extension);
static member GetLanguageFromExtension : string -> string
[<System.Runtime.InteropServices.ComVisible(false)>]
static member GetLanguageFromExtension : string -> string
Public Shared Function GetLanguageFromExtension (extension As String) As String
Parametry
- extension
- String
Rozszerzenie nazwy pliku.
Zwraca
Nazwa języka skojarzona z rozszerzeniem nazwy pliku, zgodnie z konfiguracją w ustawieniach konfiguracji kompilatora CodeDomProvider .
- Atrybuty
Wyjątki
Na extension
tym komputerze nie ma skonfigurowanego dostawcy języka.
Wartość extension
to null
.
Obiekt wywołujący nie posiada wymaganych uprawnień.
Przykłady
Poniższy przykład kodu określa implementację CodeDomProvider rozszerzenia nazwy pliku wejściowego i wyświetla skonfigurowane ustawienia dostawcy języka. Ten przykład kodu jest częścią większego przykładu udostępnionego CompilerInfo dla klasy .
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
Uwagi
Element< system.codedom> w pliku konfiguracji maszyny (Machine.config) zawiera ustawienia konfiguracji dostawcy języka i kompilatora dla każdej CodeDomProvider implementacji na komputerze. Metoda GetLanguageFromExtension wyszukuje każdy element konfiguracji dostawcy dla określonego rozszerzenia nazwy pliku.
Metoda sprawdza, czy co najmniej jedna implementacja IsDefinedExtension dostawcy obsługuje określone rozszerzenie nazwy pliku. Przed przekazaniem GetLanguageFromExtensiondo pliku można zweryfikować rozszerzenie nazwy pliku przy użyciu polecenia IsDefinedExtension . GetLanguageFromExtension Zapobiega to zgłaszaniu elementu System.Configuration.ConfigurationException dla nieobsługiwanego rozszerzenia nazwy pliku.
Jeśli implementacja dostawcy obsługuje rozszerzenie nazwy pliku wejściowego i istnieje wiele obsługiwanych języków skonfigurowanych dla tego dostawcy, zwraca GetLanguageFromExtension pierwszą nazwę języka dla tego dostawcy. Jeśli dla rozszerzenia nazwy pliku wejściowego skonfigurowano więcej niż jedną implementację dostawcy, GetLanguageFromExtension zwraca nazwę języka z ostatniego pasującego elementu konfiguracji dostawcy.
Nazwy języków i rozszerzenia nazw plików są bez uwzględniania wielkości liter.