CodeDomProvider.CreateProvider Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
CodeDomProvider Возвращает экземпляр для указанного языка.
Перегрузки
| Имя | Описание |
|---|---|
| CreateProvider(String) |
CodeDomProvider Возвращает экземпляр для указанного языка. |
| CreateProvider(String, IDictionary<String,String>) |
CodeDomProvider Возвращает экземпляр для указанных параметров языка и поставщика. |
CreateProvider(String)
- Исходный код:
- CodeDomProvider.cs
- Исходный код:
- CodeDomProvider.cs
- Исходный код:
- CodeDomProvider.cs
- Исходный код:
- CodeDomProvider.cs
- Исходный код:
- CodeDomProvider.cs
- Исходный код:
- CodeDomProvider.cs
- Исходный код:
- 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;
// 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
Комментарии
Note
Этот метод чаще всего используется для создания экземпляра поставщика кода в приложении, который может использовать один из нескольких поставщиков. CreateProvider позволяет указать во время выполнения поставщик кода, который требуется создать. Если вы знаете во время разработки, какой поставщик кода будет использоваться, следует создать экземпляр этого поставщика кода, а не использовать CreateProvider этот метод.
Метод CreateProvider возвращает CodeDomProvider экземпляр для определенного имени языка; он аналогичен вызову Activator.CreateInstance метода с типом поставщика языка. Используйте CreateProvider , если требуется динамически найти настроенную реализацию поставщика для имени языка.
Если для имени языка настроено несколько реализаций поставщика, CreateProvider возвращает экземпляр поставщика для последнего соответствующего элемента конфигурации.
Используйте перегрузку Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) метода, если требуется реализация конкретного поставщика языка. Например, используйте метод CreateProvider для получения экземпляра поставщика, поддерживающего имя языка "CSharp"; используйте перегрузку метода Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo), чтобы получить экземпляр поставщика специально для реализации Microsoft.CSharp.CSharpCodeProvider. Используйте метод, Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) если у вас есть несколько поставщиков кода для языка, и вы хотите создать экземпляр определенного поставщика кода.
Метод IsDefinedLanguage проверяет, поддерживает ли по крайней мере одна реализация поставщика определенного языка. Перед передачей в него IsDefinedLanguageможно проверить имя CreateProvider языка. При передаче неподдерживаемого CreateProvider имени System.Configuration.ConfigurationException языка создается исключение.
Этот GetAllCompilerInfo метод можно использовать для определения всех CodeDomProvider реализаций на компьютере, включая дополнительные реализации, предоставляемые разработчиками и поставщиками компиляторов, которые определены в <элементе system.codedom> в файле конфигурации компьютера (Machine.config).
Метод CreateProvider возвращает экземпляр реализации для определенного CodeDomProvider языка.
Имена языков не учитывает регистр.
См. также раздел
Применяется к
CreateProvider(String, IDictionary<String,String>)
- Исходный код:
- CodeDomProvider.cs
- Исходный код:
- CodeDomProvider.cs
- Исходный код:
- CodeDomProvider.cs
- Исходный код:
- CodeDomProvider.cs
- Исходный код:
- CodeDomProvider.cs
- Исходный код:
- CodeDomProvider.cs
- Исходный код:
- 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 параметра.
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
Комментарии
Note
Этот метод чаще всего используется для создания экземпляра поставщика кода в приложении, который может использовать один из нескольких поставщиков. CreateProvider(String, IDictionary<String,String>) позволяет указать во время выполнения версию поставщика кода, которую требуется создать. Если вы знаете во время разработки, какой поставщик кода будет использоваться, следует создать экземпляр этого поставщика кода вместо использования CreateProvider(String, IDictionary<String,String>) метода.
Используйте CreateProvider(String, IDictionary<String,String>) , если вы хотите динамически найти настроенную реализацию поставщика для определенного языка и параметров. Имена языков не учитывает регистр. Сведения о поддерживаемых параметрах поставщика см. в документации по конкретному поставщику CodeDOM.
Сведения о проверке поставщика и вызове поставщика, если для имени языка настроено несколько реализаций поставщика, см. в разделе CreateProvider(String) "Примечания" метода.