CodeDomProvider.CreateProvider Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém uma instância CodeDomProvider para o idioma especificado.
Sobrecargas
CreateProvider(String) |
Obtém uma instância CodeDomProvider para o idioma especificado. |
CreateProvider(String, IDictionary<String,String>) |
Obtém uma instância CodeDomProvider para as opções de idioma e provedor especificadas. |
CreateProvider(String)
- Origem:
- CodeDomProvider.cs
- Origem:
- CodeDomProvider.cs
- Origem:
- CodeDomProvider.cs
Obtém uma instância CodeDomProvider para o idioma especificado.
public:
static System::CodeDom::Compiler::CodeDomProvider ^ CreateProvider(System::String ^ language);
public static System.CodeDom.Compiler.CodeDomProvider CreateProvider (string language);
[System.Runtime.InteropServices.ComVisible(false)]
public static System.CodeDom.Compiler.CodeDomProvider CreateProvider (string language);
static member CreateProvider : string -> System.CodeDom.Compiler.CodeDomProvider
[<System.Runtime.InteropServices.ComVisible(false)>]
static member CreateProvider : string -> System.CodeDom.Compiler.CodeDomProvider
Public Shared Function CreateProvider (language As String) As CodeDomProvider
Parâmetros
- language
- String
O nome do idioma.
Retornos
Um provedor CodeDOM implementado para o nome do idioma especificado.
- Atributos
Exceções
O language
não tem um provedor configurado neste computador.
O language
é null
.
O chamador não tem a permissão necessária.
Exemplos
O exemplo de código a seguir determina a CodeDomProvider implementação de um idioma de entrada e exibe as configurações definidas para o provedor de idiomas. Este exemplo de código faz parte de um exemplo maior fornecido para a CompilerInfo classe .
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 );
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);
}
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
Comentários
Observação
Esse método é mais comumente usado para criar uma instância de um provedor de código em um aplicativo que, opcionalmente, pode usar um dos vários provedores. CreateProvider permite especificar em tempo de execução o provedor de código que você deseja instanciar. Se você souber em tempo de design qual provedor de código deve ser usado, crie uma instância desse provedor de código em vez de usar o CreateProvider método .
O CreateProvider método retorna uma CodeDomProvider instância para um nome de idioma específico; é semelhante a chamar o Activator.CreateInstance método com o tipo de provedor de idioma. Use CreateProvider quando quiser localizar dinamicamente uma implementação de provedor configurada para um nome de idioma.
Se mais de uma implementação de provedor estiver configurada para o nome do idioma, CreateProvider retornará uma instância de provedor para o último elemento de configuração correspondente.
Use a sobrecarga do Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) método quando quiser uma implementação específica do provedor de idiomas. Por exemplo, use o CreateProvider método para obter uma instância de provedor que dê suporte ao nome "CSharp"
do idioma ; use a sobrecarga do Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) método para obter uma instância de provedor especificamente para a Microsoft.CSharp.CSharpCodeProvider implementação. Use o Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) método se você tiver vários provedores de código para um idioma e desejar instanciar um provedor de código específico.
O IsDefinedLanguage método verifica se pelo menos uma implementação de provedor dá suporte a um idioma específico. Você pode validar um nome de idioma usando IsDefinedLanguage antes de passá-lo para CreateProvider. Se você passar um nome de idioma sem suporte para CreateProvider um System.Configuration.ConfigurationException é gerado.
O GetAllCompilerInfo método pode ser usado para determinar todas as CodeDomProvider implementações em um computador, incluindo implementações adicionais fornecidas por desenvolvedores e fornecedores do compilador que são identificados no <Elemento system.codedom> no arquivo de configuração do computador (Machine.config).
O CreateProvider método retorna uma instância de uma CodeDomProvider implementação para um idioma específico.
Nomes de idioma não diferenciam maiúsculas de minúsculas.
Confira também
Aplica-se a
CreateProvider(String, IDictionary<String,String>)
- Origem:
- CodeDomProvider.cs
- Origem:
- CodeDomProvider.cs
- Origem:
- CodeDomProvider.cs
Obtém uma instância CodeDomProvider para as opções de idioma e provedor especificadas.
public:
static System::CodeDom::Compiler::CodeDomProvider ^ CreateProvider(System::String ^ language, System::Collections::Generic::IDictionary<System::String ^, System::String ^> ^ providerOptions);
public static System.CodeDom.Compiler.CodeDomProvider CreateProvider (string language, System.Collections.Generic.IDictionary<string,string> providerOptions);
[System.Runtime.InteropServices.ComVisible(false)]
public static System.CodeDom.Compiler.CodeDomProvider CreateProvider (string language, System.Collections.Generic.IDictionary<string,string> providerOptions);
static member CreateProvider : string * System.Collections.Generic.IDictionary<string, string> -> System.CodeDom.Compiler.CodeDomProvider
[<System.Runtime.InteropServices.ComVisible(false)>]
static member CreateProvider : string * System.Collections.Generic.IDictionary<string, string> -> System.CodeDom.Compiler.CodeDomProvider
Public Shared Function CreateProvider (language As String, providerOptions As IDictionary(Of String, String)) As CodeDomProvider
Parâmetros
- language
- String
O nome do idioma.
- providerOptions
- IDictionary<String,String>
Uma coleção de opções do provedor do arquivo de configuração.
Retornos
Um provedor CodeDOM implementado para as opções e o nome do idioma especificados.
- Atributos
Exemplos
O exemplo a seguir mostra como criar uma instância de um provedor usando o providerOptions
parâmetro .
using System;
using System.CodeDom.Compiler;
using Microsoft.CSharp;
using Microsoft.VisualBasic;
using System.Collections.Generic;
namespace ProviderOptions
{
class Program
{
static void Main(string[] args)
{
DisplayCSharpCompilerInfo();
DisplayVBCompilerInfo();
Console.WriteLine("Press Enter key to exit.");
Console.ReadLine();
}
static void DisplayCSharpCompilerInfo()
{
Dictionary<string, string> provOptions =
new Dictionary<string, string>();
provOptions.Add("CompilerVersion", "v4");
// Get the provider for Microsoft.CSharp
CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp", provOptions);
// Display the C# language provider information.
Console.WriteLine("CSharp provider is {0}",
provider.ToString());
Console.WriteLine(" Provider hash code: {0}",
provider.GetHashCode().ToString());
Console.WriteLine(" Default file extension: {0}",
provider.FileExtension);
Console.WriteLine();
}
static void DisplayVBCompilerInfo()
{
Dictionary<string, string> provOptions =
new Dictionary<string, string>();
provOptions.Add("CompilerVersion", "v3.5");
// Get the provider for Microsoft.VisualBasic
CodeDomProvider provider = CodeDomProvider.CreateProvider("VisualBasic", provOptions);
// Display the Visual Basic language provider information.
Console.WriteLine("Visual Basic provider is {0}",
provider.ToString());
Console.WriteLine(" Provider hash code: {0}",
provider.GetHashCode().ToString());
Console.WriteLine(" Default file extension: {0}",
provider.FileExtension);
Console.WriteLine();
}
}
}
Imports System.CodeDom.Compiler
Imports Microsoft.CSharp
Imports System.Collections.Generic
Class Program
Shared Sub Main(ByVal args() As String)
DisplayCSharpCompilerInfo()
DisplayVBCompilerInfo()
Console.WriteLine("Press Enter key to exit.")
Console.ReadLine()
End Sub
Shared Sub DisplayCSharpCompilerInfo()
Dim provOptions As New Dictionary(Of String, String)
provOptions.Add("CompilerVersion", "v4")
' Get the provider for Microsoft.CSharp
Dim provider As CodeDomProvider = CodeDomProvider.CreateProvider("CSharp", provOptions)
' Display the C# language provider information.
Console.WriteLine("CSharp provider is {0}", provider.ToString())
Console.WriteLine(" Provider hash code: {0}", provider.GetHashCode().ToString())
Console.WriteLine(" Default file extension: {0}", provider.FileExtension)
Console.WriteLine()
End Sub
Shared Sub DisplayVBCompilerInfo()
Dim provOptions As New Dictionary(Of String, String)
provOptions.Add("CompilerVersion", "v3.5")
' Get the provider for Microsoft.VisualBasic
Dim provider As CodeDomProvider = CodeDomProvider.CreateProvider("VisualBasic", provOptions)
' Display the Visual Basic language provider information.
Console.WriteLine("Visual Basic provider is {0}", provider.ToString())
Console.WriteLine(" Provider hash code: {0}", provider.GetHashCode().ToString())
Console.WriteLine(" Default file extension: {0}", provider.FileExtension)
Console.WriteLine()
End Sub
End Class
Comentários
Observação
Esse método é mais comumente usado para criar uma instância de um provedor de código em um aplicativo que, opcionalmente, pode usar um dos vários provedores. CreateProvider(String, IDictionary<String,String>) permite especificar em tempo de execução a versão do provedor de código que você deseja instanciar. Se você souber em tempo de design qual provedor de código deve ser usado, crie uma instância desse provedor de código em vez de usar o CreateProvider(String, IDictionary<String,String>) método .
Use CreateProvider(String, IDictionary<String,String>) quando quiser encontrar dinamicamente uma implementação de provedor configurada para um idioma e opções específicos. Nomes de idioma não diferenciam maiúsculas de minúsculas. Para obter informações sobre as opções de provedor com suporte, consulte a documentação específica do provedor CodeDOM.
Para obter informações sobre como validar um provedor e chamar um provedor se mais de uma implementação de provedor estiver configurada para o nome do idioma, consulte a seção Comentários do CreateProvider(String) método .