CompilerInfo.IsCodeDomProviderTypeValid Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает значение, указывающее, настроена ли на данном компьютере реализация поставщика языка.
public:
property bool IsCodeDomProviderTypeValid { bool get(); };
public bool IsCodeDomProviderTypeValid { get; }
member this.IsCodeDomProviderTypeValid : bool
Public ReadOnly Property IsCodeDomProviderTypeValid As Boolean
Значение свойства
true
, если на данном компьютере настроена реализация поставщика языка; в противном случае — false
.
Примеры
В следующем примере кода определяется, имеет ли язык ввода настроенную CodeDomProvider реализацию на компьютере. Если для указанного языка настроен поставщик, в примере отображаются параметры конфигурации поставщика языка. Этот пример входит в состав более крупного примера использования класса CompilerInfo.
CodeDomProvider^ provider = nullptr;
CompilerInfo^ info = CodeDomProvider::GetCompilerInfo( configLanguage );
// Check whether there is a provider configured for this language.
if ( info->IsCodeDomProviderTypeValid )
{
// Get a provider instance using the configured type information.
provider = dynamic_cast<CodeDomProvider^>(Activator::CreateInstance( info->CodeDomProviderType ));
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.
CompilerParameters^ langCompilerConfig = info->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}\".", configLanguage );
CompilerInfo info = CodeDomProvider.GetCompilerInfo(configLanguage);
// Check whether there is a provider configured for this language.
if (info.IsCodeDomProviderTypeValid)
{
// Get a provider instance using the configured type information.
CodeDomProvider provider;
provider = (CodeDomProvider)Activator.CreateInstance(info.CodeDomProviderType);
// 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.
CompilerParameters langCompilerConfig = info.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}\".",
configLanguage);
}
Dim info As CompilerInfo = CodeDomProvider.GetCompilerInfo(configLanguage)
' Check whether there is a provider configured for this language.
If info.IsCodeDomProviderTypeValid Then
' Get a provider instance using the configured type information.
Dim provider As CodeDomProvider
provider = CType(Activator.CreateInstance(info.CodeDomProviderType), CodeDomProvider)
' 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 langCompilerConfig As CompilerParameters = info.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}"".", configLanguage)
End If
Комментарии
Используйте свойство , IsCodeDomProviderTypeValid чтобы проверка реализацию CodeDomProvider перед доступом к свойствам или методам поставщика. Например, после получения параметров поставщика языка из GetCompilerInfo метода используйте IsCodeDomProviderTypeValid свойство , чтобы проверить реализацию типа поставщика перед вызовом CreateProvider метода или использованием CodeDomProviderType свойства .