Генерация блока DLL динамично во время выполнения

ngOnChanges можно использовать именно для этого

Сначала убедитесь, что ваш компонент реализует ngOnChanges следующим образом

export class TimelineComponent implements OnChanges

Затем реализуйте метод ngOnChanges следующим образом

    ngOnChanges(changes: SimpleChanges) {
        if (changes.editing) {
            console.log(changes.editing.currentValue);
        }
    }
[ 117] Каждый раз, когда любой вход был изменен, он будет вводить метод ngOnChanges. По этой же причине был добавлен оператор if, поскольку при изменении любого другого ввода свойство editing не будет существовать в объекте changes.

Для примитивных значений это сработает при любом изменении. Для ссылочных значений вам нужно изменить фактическую ссылку, просто изменение свойства объекта, имеющегося во входных данных, не сработает.

31
задан Eric Dand 11 November 2014 в 02:41
поделиться

2 ответа

using System.CodeDom.Compiler;
using System.Diagnostics;
using Microsoft.CSharp;

CSharpCodeProvider codeProvider = new CSharpCodeProvider();
ICodeCompiler icc = codeProvider.CreateCompiler();
System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.OutputAssembly = "AutoGen.dll";
CompilerResults results = icc.CompileAssemblyFromSource(parameters, yourCodeAsString);

Адаптированный от http://support.microsoft.com/kb/304655

39
ответ дан 27 November 2019 в 21:51
поделиться

Прямо сейчас Ваш лучший выбор CSharpCodeProvider; планы относительно 4,0 включают "компилятор как услуга", который сделает это полностью управляемым.

4
ответ дан 27 November 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: