Как разгрузить ссылку на сборку.NET в IronPython

Для java 8 +, другое возможное решение (более общий, func-стиль и без аспектов) могло состоять в том, чтобы создать некоторый код принятия служебного метода в качестве параметра

public static <T> T timed (String description, Consumer<String> out, Supplier<T> code) {
    final LocalDateTime start = LocalDateTime.now ();
    T res = code.get ();
    final long execTime = Duration.between (start, LocalDateTime.now ()).toMillis ();
    out.accept (String.format ("%s: %d ms", description, execTime));
    return res;
}

, И код вызова мог быть чем-то как этот:

public static void main (String[] args) throws InterruptedException {
    timed ("Simple example", System.out::println, Timing::myCode);
}

public static Object myCode () {
    try {
        Thread.sleep (1500);
    } catch (InterruptedException e) {
        e.printStackTrace ();
    }
    return null;
}
6
задан denfromufa 6 October 2014 в 16:16
поделиться

1 ответ

.NET не поддерживает выгрузку только одной сборки. Вместо этого вам нужно выгрузить весь AppDomain . Я не знаю точно, как IronPython работает с AppDomain s, но это нормальный способ работы .NET. (Загрузите сборку в новый AppDomain , используйте его, удалите AppDomain , создайте новый AppDomain с новой версией файла и т. Д.)

6
ответ дан 17 December 2019 в 02:31
поделиться
Другие вопросы по тегам:

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