CodeDomProvider.CreateProvider Yöntem

Tanım

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.

Şunlara uygulanır