CodeDomProvider.CreateProvider 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 언어에 대한 CodeDomProvider 인스턴스를 가져옵니다.
오버로드
CreateProvider(String) |
지정된 언어에 대한 CodeDomProvider 인스턴스를 가져옵니다. |
CreateProvider(String, IDictionary<String,String>) |
지정된 언어와 공급자 옵션에 대한 CodeDomProvider 인스턴스를 가져옵니다. |
CreateProvider(String)
- Source:
- CodeDomProvider.cs
- Source:
- CodeDomProvider.cs
- Source:
- CodeDomProvider.cs
지정된 언어에 대한 CodeDomProvider 인스턴스를 가져옵니다.
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
매개 변수
- language
- String
언어 이름입니다.
반환
지정된 언어 이름에 대해 구현된 CodeDOM 공급자입니다.
- 특성
예외
language
에 대한 공급자가 이 컴퓨터에 구성되어 있지 않은 경우
language
이 null
인 경우
호출자에게 필요한 권한이 없는 경우
예제
다음 코드 예제에서는 입력 언어에 CodeDomProvider 대 한 구현을 결정 하 고 언어 공급자에 대 한 구성 된 설정을 표시 합니다. 이 코드 예제는에 대해 제공 된 큰 예제의 일부는 CompilerInfo 클래스입니다.
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
설명
참고
이 메서드는 인스턴스를 만드는 코드 공급자의 여러 공급자 중 하나를 선택적으로 사용할 수 있는 애플리케이션에서 가장 많이 사용 됩니다. CreateProvider 를 사용하면 런타임에 인스턴스화하려는 코드 공급자를 지정할 수 있습니다. 디자인 타임에 어떤 코드 공급자를 사용할지 알고 있는 경우 메서드를 사용하는 CreateProvider 대신 해당 코드 공급자의 instance 만들어야 합니다.
메서드는 CreateProvider 특정 언어 이름에 대한 instance 반환 CodeDomProvider 합니다. 언어 공급자 형식으로 메서드를 Activator.CreateInstance 호출하는 것과 비슷합니다. 언어 이름에 대해 구성된 공급자 구현을 동적으로 찾으려는 경우 를 사용합니다 CreateProvider .
언어 이름 CreateProvider 에 대해 둘 이상의 공급자 구현이 구성된 경우 는 마지막으로 일치하는 구성 요소에 대한 공급자 instance 반환합니다.
특정 언어 공급자 구현을 Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) 원하는 경우 메서드 오버로드를 사용합니다. 예를 들어 메서드를 CreateProvider 사용하여 언어 이름을 "CSharp"
지원하는 공급자 instance 가져옵니다. 메서드 오버로드를 사용하여 Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) 구현에 대한 Microsoft.CSharp.CSharpCodeProvider 공급자 instance 가져옵니다. 언어에 Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) 대한 여러 코드 공급자가 있고 특정 코드 공급자를 인스턴스화하려는 경우 메서드를 사용합니다.
메서드는 IsDefinedLanguage 하나 이상의 공급자 구현이 특정 언어를 지원하는지 여부를 확인합니다. 에 전달하기 전에 를 사용하여 IsDefinedLanguage 언어 이름의 유효성을 검사할 CreateProvider수 있습니다. 지원되지 않는 언어 이름을 CreateProviderSystem.Configuration.ConfigurationException 에 전달하면 이 throw됩니다.
메서드는 GetAllCompilerInfo 컴퓨터 구성 파일(Machine.config)의 system.codedom> 요소에서< 식별되는 개발자 및 컴파일러 공급업체가 제공하는 추가 구현을 포함하여 컴퓨터의 모든 CodeDomProvider 구현을 확인하는 데 사용할 수 있습니다.
메서드는 CreateProvider 특정 언어에 대한 구현의 CodeDomProvider instance 반환합니다.
언어 이름은 대/소문자를 구분하지 않습니다.
추가 정보
적용 대상
CreateProvider(String, IDictionary<String,String>)
- Source:
- CodeDomProvider.cs
- Source:
- CodeDomProvider.cs
- Source:
- CodeDomProvider.cs
지정된 언어와 공급자 옵션에 대한 CodeDomProvider 인스턴스를 가져옵니다.
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
매개 변수
- language
- String
언어 이름입니다.
- providerOptions
- IDictionary<String,String>
구성 파일의 공급자 옵션 컬렉션입니다.
반환
지정된 언어 이름과 옵션에 대해 구현된 CodeDOM 공급자입니다.
- 특성
예제
다음 예제에서는 매개 변수를 사용하여 providerOptions
공급자의 instance 만드는 방법을 보여줍니다.
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
설명
참고
이 메서드는 인스턴스를 만드는 코드 공급자의 여러 공급자 중 하나를 선택적으로 사용할 수 있는 애플리케이션에서 가장 많이 사용 됩니다. CreateProvider(String, IDictionary<String,String>) 를 사용하면 런타임에 인스턴스화하려는 코드 공급자의 버전을 지정할 수 있습니다. 디자인 타임에 사용할 코드 공급자를 알고 있는 경우 메서드를 사용하는 CreateProvider(String, IDictionary<String,String>) 대신 해당 코드 공급자의 instance 만들어야 합니다.
특정 언어 및 옵션에 대해 구성된 공급자 구현을 동적으로 찾으려는 경우 를 사용합니다 CreateProvider(String, IDictionary<String,String>) . 언어 이름은 대/소문자를 구분하지 않습니다. 지원되는 공급자 옵션에 대한 자세한 내용은 특정 CodeDOM 공급자 설명서를 참조하세요.
언어 이름에 대해 둘 이상의 공급자 구현이 구성된 경우 공급자의 유효성을 검사하고 공급자를 호출하는 방법에 대한 자세한 내용은 메서드의 설명 섹션을 CreateProvider(String) 참조하세요.
적용 대상
.NET