CodeDomProvider.CreateProvider Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen dil için bir CodeDomProvider örnek alır.
Aşırı Yüklemeler
CreateProvider(String) |
Belirtilen dil için bir CodeDomProvider örnek alır. |
CreateProvider(String, IDictionary<String,String>) |
Belirtilen dil ve sağlayıcı seçenekleri için bir CodeDomProvider örnek alır. |
CreateProvider(String)
- Kaynak:
- CodeDomProvider.cs
- Kaynak:
- CodeDomProvider.cs
- Kaynak:
- CodeDomProvider.cs
Belirtilen dil için bir CodeDomProvider örnek alır.
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
Parametreler
- language
- String
Dil adı.
Döndürülenler
Belirtilen dil adı için uygulanan bir CodeDOM sağlayıcısı.
- Öznitelikler
Özel durumlar
bu language
bilgisayarda yapılandırılmış bir sağlayıcıya sahip değil.
, language
şeklindedir null
.
Çağıranın gerekli izni yok.
Örnekler
Aşağıdaki kod örneği bir giriş dili için uygulamayı belirler CodeDomProvider ve dil sağlayıcısı için yapılandırılan ayarları görüntüler. Bu kod örneği, sınıfı için CompilerInfo sağlanan daha büyük bir örneğin parçasıdır.
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
Açıklamalar
Not
Bu yöntem en yaygın olarak, isteğe bağlı olarak birkaç sağlayıcıdan birini kullanabilen bir uygulamada kod sağlayıcısı örneği oluşturmak için kullanılır. CreateProvider , örnek olarak eklemek istediğiniz kod sağlayıcısını çalışma zamanında belirtmenize olanak tanır. Tasarım zamanında hangi kod sağlayıcısının kullanılacağını biliyorsanız yöntemini kullanmak yerine bu kod sağlayıcısının bir örneğini CreateProvider oluşturmanız gerekir.
CreateProvider yöntemi belirli bir dil adı için bir CodeDomProvider örnek döndürür; yöntemi dil sağlayıcısı türüyle çağırmaya Activator.CreateInstance benzer. Dil adı için yapılandırılmış bir sağlayıcı uygulamasını dinamik olarak bulmak istediğinizde kullanın CreateProvider .
Dil adı için birden fazla sağlayıcı uygulaması yapılandırıldıysa, CreateProvider son eşleşen yapılandırma öğesi için bir sağlayıcı örneği döndürür.
Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) Belirli bir dil sağlayıcısı uygulamasını istediğinizde yöntem aşırı yüklemesini kullanın. Örneğin, dil adını "CSharp"
destekleyen bir sağlayıcı örneği almak için yöntemini kullanınCreateProvider; özellikle uygulamaya yönelik bir sağlayıcı örneği almak için yöntem aşırı yüklemesini Microsoft.CSharp.CSharpCodeProvider kullanınActivator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo). Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) Bir dil için birden çok kod sağlayıcınız varsa ve belirli bir kod sağlayıcısının örneğini oluşturmak istiyorsanız yöntemini kullanın.
yöntemi, IsDefinedLanguage en az bir sağlayıcı uygulamasının belirli bir dili destekleyip desteklemediğini denetler. Bir dil adını' a CreateProvidergeçirmeden önce kullanarak IsDefinedLanguage doğrulayabilirsiniz. 'a CreateProviderSystem.Configuration.ConfigurationException desteklenmeyen bir dil adı geçirirseniz oluşturulur.
GetAllCompilerInfo yöntemi, makine yapılandırma dosyasındaki (Machine.config) system.codedom> Öğesinde< tanımlanan geliştiriciler ve derleyici satıcıları tarafından sağlanan ek uygulamalar da dahil olmak üzere bilgisayardaki tüm CodeDomProvider uygulamaları belirlemek için kullanılabilir.
yöntemi, CreateProvider belirli bir dil için uygulamanın CodeDomProvider bir örneğini döndürür.
Dil adları büyük/küçük harfe duyarlı değildir.
Ayrıca bkz.
Şunlara uygulanır
CreateProvider(String, IDictionary<String,String>)
- Kaynak:
- CodeDomProvider.cs
- Kaynak:
- CodeDomProvider.cs
- Kaynak:
- CodeDomProvider.cs
Belirtilen dil ve sağlayıcı seçenekleri için bir CodeDomProvider örnek alır.
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
Parametreler
- language
- String
Dil adı.
- providerOptions
- IDictionary<String,String>
Yapılandırma dosyasından sağlayıcı seçenekleri koleksiyonu.
Döndürülenler
Belirtilen dil adı ve seçenekleri için uygulanan bir CodeDOM sağlayıcısı.
- Öznitelikler
Örnekler
Aşağıdaki örnekte parametresini kullanarak bir sağlayıcı örneğinin nasıl oluşturulacağı gösterilmektedir providerOptions
.
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
Açıklamalar
Not
Bu yöntem en yaygın olarak, isteğe bağlı olarak birkaç sağlayıcıdan birini kullanabilen bir uygulamada kod sağlayıcısı örneği oluşturmak için kullanılır. CreateProvider(String, IDictionary<String,String>) , örnek olarak eklemek istediğiniz kod sağlayıcısının sürümünü çalışma zamanında belirtmenize olanak tanır. Tasarım zamanında hangi kod sağlayıcısının kullanılacağını biliyorsanız, yöntemini kullanmak yerine bu kod sağlayıcısının bir örneğini CreateProvider(String, IDictionary<String,String>) oluşturmanız gerekir.
Belirli bir dil ve seçenekler için yapılandırılmış bir sağlayıcı uygulamasını dinamik olarak bulmak istediğinizde kullanın CreateProvider(String, IDictionary<String,String>) . Dil adları büyük/küçük harfe duyarlı değildir. Desteklenen sağlayıcı seçenekleri hakkında bilgi için belirli CodeDOM sağlayıcısı belgelerine bakın.
Dil adı için birden fazla sağlayıcı uygulaması yapılandırılmışsa sağlayıcıyı doğrulama ve sağlayıcıyı çağırma hakkında bilgi için yönteminin CreateProvider(String) Açıklamalar bölümüne bakın.