CodeDomProvider.CreateProvider Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan instans CodeDomProvider untuk bahasa yang ditentukan.
Overload
CreateProvider(String) |
Mendapatkan instans CodeDomProvider untuk bahasa yang ditentukan. |
CreateProvider(String, IDictionary<String,String>) |
Mendapatkan instans CodeDomProvider untuk opsi bahasa dan penyedia yang ditentukan. |
CreateProvider(String)
- Sumber:
- CodeDomProvider.cs
- Sumber:
- CodeDomProvider.cs
- Sumber:
- CodeDomProvider.cs
Mendapatkan instans CodeDomProvider untuk bahasa yang ditentukan.
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
Parameter
- language
- String
Nama bahasa.
Mengembalikan
Penyedia CodeDOM yang diimplementasikan untuk nama bahasa yang ditentukan.
- Atribut
Pengecualian
Tidak language
memiliki penyedia yang dikonfigurasi pada komputer ini.
language
adalah null
.
Pemanggil tidak memiliki izin yang diperlukan.
Contoh
Contoh kode berikut menentukan CodeDomProvider implementasi untuk bahasa input dan menampilkan pengaturan yang dikonfigurasi untuk penyedia bahasa. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk CompilerInfo kelas .
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
Keterangan
Catatan
Metode ini paling umum digunakan untuk membuat instans penyedia kode dalam aplikasi yang dapat secara opsional menggunakan salah satu dari beberapa penyedia. CreateProvider memungkinkan Anda menentukan pada waktu proses penyedia kode yang ingin Anda buat instansnya. Jika Anda tahu pada waktu desain penyedia kode mana yang akan digunakan, Anda harus membuat instans penyedia kode tersebut CreateProvider daripada menggunakan metode .
Metode mengembalikan CreateProvider instans CodeDomProvider untuk nama bahasa tertentu; mirip dengan memanggil Activator.CreateInstance metode dengan jenis penyedia bahasa. Gunakan CreateProvider saat Anda ingin menemukan implementasi penyedia yang dikonfigurasi secara dinamis untuk nama bahasa.
Jika lebih dari satu implementasi penyedia dikonfigurasi untuk nama bahasa, CreateProvider mengembalikan instans penyedia untuk elemen konfigurasi pencocokan terakhir.
Gunakan metode kelebihan Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) beban saat Anda menginginkan implementasi penyedia bahasa tertentu. Misalnya, gunakan CreateProvider metode untuk mendapatkan instans penyedia yang mendukung nama "CSharp"
bahasa ; gunakan Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) metode kelebihan beban untuk mendapatkan instans penyedia khusus untuk Microsoft.CSharp.CSharpCodeProvider implementasi. Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) Gunakan metode jika Anda memiliki beberapa penyedia kode untuk bahasa dan Anda ingin membuat instans penyedia kode tertentu.
Metode ini IsDefinedLanguage memeriksa apakah setidaknya satu implementasi penyedia mendukung bahasa tertentu. Anda dapat memvalidasi nama bahasa menggunakan IsDefinedLanguage sebelum meneruskannya ke CreateProvider. Jika Anda meneruskan nama bahasa yang tidak didukung ke CreateProviderSystem.Configuration.ConfigurationException dilemparkan.
Metode ini GetAllCompilerInfo dapat digunakan untuk menentukan semua CodeDomProvider implementasi pada komputer, termasuk implementasi tambahan yang disediakan oleh pengembang dan vendor pengompilasi yang diidentifikasi dalam <System.codedom> Element dalam file konfigurasi komputer (Machine.config).
Metode mengembalikan CreateProvider instans CodeDomProvider implementasi untuk bahasa tertentu.
Nama bahasa tidak peka huruf besar/kecil.
Lihat juga
Berlaku untuk
CreateProvider(String, IDictionary<String,String>)
- Sumber:
- CodeDomProvider.cs
- Sumber:
- CodeDomProvider.cs
- Sumber:
- CodeDomProvider.cs
Mendapatkan instans CodeDomProvider untuk opsi bahasa dan penyedia yang ditentukan.
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
Parameter
- language
- String
Nama bahasa.
- providerOptions
- IDictionary<String,String>
Kumpulan opsi penyedia dari file konfigurasi.
Mengembalikan
Penyedia CodeDOM yang diimplementasikan untuk nama dan opsi bahasa yang ditentukan.
- Atribut
Contoh
Contoh berikut menunjukkan cara membuat instans penyedia dengan menggunakan providerOptions
parameter .
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
Keterangan
Catatan
Metode ini paling umum digunakan untuk membuat instans penyedia kode dalam aplikasi yang dapat secara opsional menggunakan salah satu dari beberapa penyedia. CreateProvider(String, IDictionary<String,String>) memungkinkan Anda menentukan pada durasi versi penyedia kode yang ingin Anda buat instansnya. Jika Anda tahu pada waktu desain penyedia kode mana yang akan digunakan, Anda harus membuat instans penyedia kode tersebut CreateProvider(String, IDictionary<String,String>) alih-alih menggunakan metode .
Gunakan CreateProvider(String, IDictionary<String,String>) saat Anda ingin menemukan implementasi penyedia yang dikonfigurasi secara dinamis untuk bahasa dan opsi tertentu. Nama bahasa tidak peka huruf besar/kecil. Untuk informasi tentang opsi penyedia yang didukung, lihat dokumentasi penyedia CodeDOM tertentu.
Untuk informasi tentang memvalidasi penyedia dan memanggil penyedia jika lebih dari satu implementasi penyedia dikonfigurasi untuk nama bahasa, lihat bagian Keterangan dari CreateProvider(String) metode .