CodeDomProvider.CreateProvider CodeDomProvider.CreateProvider CodeDomProvider.CreateProvider CodeDomProvider.CreateProvider Method

정의

지정된 언어에 대한 CodeDomProvider 인스턴스를 가져옵니다.Gets a CodeDomProvider instance for the specified language.

오버로드

CreateProvider(String) CreateProvider(String) CreateProvider(String) CreateProvider(String)

지정된 언어에 대한 CodeDomProvider 인스턴스를 가져옵니다.Gets a CodeDomProvider instance for the specified language.

CreateProvider(String, IDictionary<String,String>) CreateProvider(String, IDictionary<String,String>) CreateProvider(String, IDictionary<String,String>) CreateProvider(String, IDictionary<String,String>)

지정된 언어와 공급자 옵션에 대한 CodeDomProvider 인스턴스를 가져옵니다.Gets a CodeDomProvider instance for the specified language and provider options.

CreateProvider(String) CreateProvider(String) CreateProvider(String) CreateProvider(String)

지정된 언어에 대한 CodeDomProvider 인스턴스를 가져옵니다.Gets a CodeDomProvider instance for the specified language.

public:
 static System::CodeDom::Compiler::CodeDomProvider ^ CreateProvider(System::String ^ language);
[System.Runtime.InteropServices.ComVisible(false)]
public static System.CodeDom.Compiler.CodeDomProvider CreateProvider (string language);
static member CreateProvider : string -> System.CodeDom.Compiler.CodeDomProvider
Public Shared Function CreateProvider (language As String) As CodeDomProvider

매개 변수

language
String String String String

언어 이름입니다.The language name.

반환

지정된 언어 이름에 대해 구현된 CodeDOM 공급자입니다.A CodeDOM provider that is implemented for the specified language name.

예외

language에 대한 공급자가 이 컴퓨터에 구성되어 있지 않은 경우The language does not have a configured provider on this computer.

호출자에게 필요한 권한이 없는 경우The caller does not have the required permission.

예제

다음 코드 예제에서는 결정을 CodeDomProvider 언어 공급자에 대 한 구성된 설정 표시 및 입력된 언어에 대 한 구현 합니다.The following code example determines the CodeDomProvider implementation for an input language and displays the configured settings for the language provider. 이 코드 예제는에 대해 제공 된 큰 예제의 일부는 CompilerInfo 클래스입니다.This code example is part of a larger example provided for the CompilerInfo class.

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

설명

참고

이 메서드는 인스턴스를 만드는 코드 공급자의 여러 공급자 중 하나를 선택적으로 사용할 수 있는 애플리케이션에서 가장 많이 사용 됩니다.This method is most commonly used to create an instance of a code provider in an application that may optionally use one of several providers. CreateProvider 런타임에 인스턴스화할 하려는 코드 공급자를 지정할 수 있습니다.CreateProvider allows you to specify at run time the code provider you wish to instantiate. 디자인 타임 코드 공급자를 사용 하는 것에 알고 있는 경우 해당 코드 공급자의 인스턴스를 만드는 대신 해야 사용 된 CreateProvider 메서드.If you know at design time which code provider is to be used, you should create an instance of that code provider rather than use the CreateProvider method.

CreateProvider 메서드가 반환 되는 CodeDomProvider 특정 언어 이름에 대 한 인스턴스; 호출 하는 것과 비슷합니다는 Activator.CreateInstance 언어 공급자 형식 사용 하 여 메서드.The CreateProvider method returns a CodeDomProvider instance for a specific language name; it is similar to calling the Activator.CreateInstance method with the language provider type. 사용 하 여 CreateProvider 동적 언어 이름에 대 한 구성된 공급자 구현을를 찾으려는 경우.Use CreateProvider when you want to dynamically find a configured provider implementation for a language name.

둘 이상의 공급자 구현 언어 이름에 대해 구성 된 경우 CreateProvider 마지막 일치 하는 구성 요소에 대 한 공급자 인스턴스를 반환 합니다.If more than one provider implementation is configured for the language name, CreateProvider returns a provider instance for the last matching configuration element.

사용 된 Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) 메서드 오버 로드 하는 특정 언어 공급자 구현 하려는 경우.Use the Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) method overload when you want a specific language provider implementation. 사용 예를 들어,를 CreateProvider 언어 이름을 지 원하는 공급자 인스턴스를 가져오는 방법 "CSharp"; 사용 합니다 Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) 메서드 오버 로드에 맞게 공급자 인스턴스를 가져오는 Microsoft.CSharp.CSharpCodeProvider 구현 합니다.For example, use the CreateProvider method to get a provider instance that supports the language name "CSharp"; use the Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) method overload to get a provider instance specifically for the Microsoft.CSharp.CSharpCodeProvider implementation. 사용 해야 합니다 [], 개체, CultureInfo<xref:System.Activator.CreateInstance%28System.Type%2CSystem.Reflection.BindingFlags%2CSystem.Reflection.Binder%2CSystem.Object%5B%5D% 2CSystem.Globalization.CultureInfo%2CSystem.Object%5B%5D%29?displayProperty=nameWithType > 메서드는 언어에 대 한 여러 코드 공급자 있고 특정 코드 공급자를 인스턴스화할 하려는 경우.You should use the [], CultureInfo, Object<xref:System.Activator.CreateInstance%28System.Type%2CSystem.Reflection.BindingFlags%2CSystem.Reflection.Binder%2CSystem.Object%5B%5D%2CSystem.Globalization.CultureInfo%2CSystem.Object%5B%5D%29?displayProperty=nameWithType> method if you have multiple code providers for a language and you desire to instantiate a specific code provider.

IsDefinedLanguage 메서드는 하나 이상의 공급자 구현에서 특정 언어를 지원 하는지 여부를 확인 합니다.The IsDefinedLanguage method checks whether at least one provider implementation supports a specific language. 사용 하 여 언어 이름을 확인할 수 있습니다 IsDefinedLanguage 전달 하기 전에 CreateProvider입니다.You can validate a language name using IsDefinedLanguage before passing it to CreateProvider. 하는 지원 되지 않는 언어 이름을 전달 하는 경우 CreateProviderSystem.Configuration.ConfigurationException throw 됩니다.If you pass an unsupported language name to CreateProvider a System.Configuration.ConfigurationException is thrown.

합니다 GetAllCompilerInfo 메서드를 사용 하 여 모두 확인할 수 있습니다 CodeDomProvider 구현 개발자 및에서 식별 되는 컴파일러 공급 업체에서 제공 하는 추가 구현을 비롯 하 여 컴퓨터에는 <system.codedom > 요소 컴퓨터 구성 파일 (Machine.config).The GetAllCompilerInfo method can be used to determine all CodeDomProvider implementations on a computer, including additional implementations provided by developers and compiler vendors that are identified in the <system.codedom> Element in the machine configuration file (Machine.config).

합니다 CreateProvider 의 인스턴스를 반환 하는 메서드를 CodeDomProvider 특정 언어에 대 한 구현 합니다.The CreateProvider method returns an instance of a CodeDomProvider implementation for a specific language.

언어 이름은 대/소문자를 구분 하지 않습니다.Language names are case-insensitive.

보안

LinkDemand
직접 실행 호출자에 대 한 완전 신뢰 합니다.for full trust for the immediate caller. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다.This member cannot be used by partially trusted code.

추가 정보

CreateProvider(String, IDictionary<String,String>) CreateProvider(String, IDictionary<String,String>) CreateProvider(String, IDictionary<String,String>) CreateProvider(String, IDictionary<String,String>)

지정된 언어와 공급자 옵션에 대한 CodeDomProvider 인스턴스를 가져옵니다.Gets a CodeDomProvider instance for the specified language and provider options.

public:
 static System::CodeDom::Compiler::CodeDomProvider ^ CreateProvider(System::String ^ language, System::Collections::Generic::IDictionary<System::String ^, System::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
Public Shared Function CreateProvider (language As String, providerOptions As IDictionary(Of String, String)) As CodeDomProvider

매개 변수

language
String String String String

언어 이름입니다.The language name.

providerOptions
IDictionary<String,String>

구성 파일의 공급자 옵션 컬렉션입니다.A collection of provider options from the configuration file.

반환

지정된 언어 이름과 옵션에 대해 구현된 CodeDOM 공급자입니다.A CodeDOM provider that is implemented for the specified language name and options.

예제

다음 예제에 사용 하 여 공급자의 인스턴스를 만드는 방법을 보여 줍니다는 providerOptions 매개 변수입니다.The following example shows how to create an instance of a provider by using the 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
Imports System.CodeDom.Compiler
Imports Microsoft.CSharp
Imports Microsoft.VisualBasic
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 'Main

    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 'DisplayCSharpCompilerInfo


    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 'DisplayVBCompilerInfo
End Class 'Program

설명

참고

이 메서드는 인스턴스를 만드는 코드 공급자의 여러 공급자 중 하나를 선택적으로 사용할 수 있는 애플리케이션에서 가장 많이 사용 됩니다.This method is most commonly used to create an instance of a code provider in an application that may optionally use one of several providers. CreateProvider(String, IDictionary<String,String>) 런타임 시 인스턴스화하 려는 코드 공급자의 버전을 지정할 수 있습니다.CreateProvider(String, IDictionary<String,String>) enables you to specify at run time the version of the code provider you want to instantiate. 사용 하는 대신 해당 코드 공급자의 인스턴스를 만들어야 하면 디자인 타임 코드 공급자를 사용 하는 것에 알고 있는 경우는 CreateProvider(String, IDictionary<String,String>) 메서드.If you know at design time which code provider is to be used, you should create an instance of that code provider instead of using the CreateProvider(String, IDictionary<String,String>) method.

사용 하 여 CreateProvider(String, IDictionary<String,String>) 특정 언어 및 옵션에 대해 구성된 된 공급자 구현을 동적으로 찾을 하려는 경우.Use CreateProvider(String, IDictionary<String,String>) when you want to dynamically find a configured provider implementation for a specific language and options. 언어 이름은 대/소문자를 구분 하지 않습니다.Language names are case-insensitive. 지원 되는 공급자 옵션에 대 한 내용은 특정 CodeDOM 공급자 설명서를 참조 하세요.For information about supported provider options, see the specific CodeDOM provider documentation.

공급자의 유효성을 검사 하 고 둘 이상의 공급자 구현 언어 이름에 대해 구성 된 경우 공급자를 호출 하는 방법에 대 한 내용은의 설명 섹션을 참조 하세요.를 CreateProvider(String) 메서드.For information about validating a provider and calling a provider if more than one provider implementation is configured for the language name, see the Remarks section of the CreateProvider(String) method.

적용 대상