Поделиться через


CodeDomProvider.CompileAssemblyFromDom Метод

Определение

Компилирует сборку на основе деревьев System.CodeDom, содержащихся в указанном массиве объектов CodeCompileUnit, используя указанные параметры компилятора.

public:
 virtual System::CodeDom::Compiler::CompilerResults ^ CompileAssemblyFromDom(System::CodeDom::Compiler::CompilerParameters ^ options, ... cli::array <System::CodeDom::CodeCompileUnit ^> ^ compilationUnits);
public virtual System.CodeDom.Compiler.CompilerResults CompileAssemblyFromDom (System.CodeDom.Compiler.CompilerParameters options, params System.CodeDom.CodeCompileUnit[] compilationUnits);
abstract member CompileAssemblyFromDom : System.CodeDom.Compiler.CompilerParameters * System.CodeDom.CodeCompileUnit[] -> System.CodeDom.Compiler.CompilerResults
override this.CompileAssemblyFromDom : System.CodeDom.Compiler.CompilerParameters * System.CodeDom.CodeCompileUnit[] -> System.CodeDom.Compiler.CompilerResults
Public Overridable Function CompileAssemblyFromDom (options As CompilerParameters, ParamArray compilationUnits As CodeCompileUnit()) As CompilerResults

Параметры

options
CompilerParameters

Объект CompilerParameters, задающий параметры компиляции.

compilationUnits
CodeCompileUnit[]

Массив типа CodeCompileUnit, указывающий код для компиляции.

Возвращаемое значение

Объект CompilerResults, показывающий результаты компиляции.

Исключения

В производном классе нельзя переопределить ни этот метод, ни метод CreateCompiler().

Только .NET Core и .NET 5+: Во всех случаях.

Комментарии

Примечание

В платформа .NET Framework версий 1.0 и 1.1 этот метод предоставляется реализациейICodeCompiler, возвращаемой CreateCompiler методом поставщика. В версии 2.0 этот метод можно вызывать непосредственно в поставщике кода, даже если он не переопределен поставщиком кода. Если поставщик кода не переопределяет этот метод, ICodeCompiler реализация вызывается базовым классом.

Примечание

В .NET Core и .NET 5+ вызовы CodeDomProvider.CompileAssemblyFromDom метода вызывают исключение PlatformNotSupportedException. Компилировать код не поддерживается.

Примечания для тех, кто наследует этот метод

При переопределении этого метода не следует вызывать соответствующий метод базового класса. Метод базового класса создает генератор в производном классе, используя устаревший CreateCompiler() метод для обеспечения совместимости с уже существовающими поставщиками, которые используют компиляторы кода. Затем метод базового класса вызывает эквивалентный метод в ICodeCompiler реализации для выполнения этой функции. Вы получите при NotImplementedException вызове метода базового класса из поставщика кода, который не использует компилятор кода.

Применяется к

См. также раздел