2014-11-15 4 views
0

Я разрабатываю приложение в Dart, и я планирую поддерживать динамически загружаемые плагины. Я не могу сделать это в зеркалах, поскольку он не поддерживает создание экземпляров классов из внешних источников, перечисление классов из внешних файлов и т. Д. Планируете ли вы расширять зеркала для поддержки java-подобных отражений? Спасибо, Скоки.Будущее зеркал в Dart

+0

Это, на самом деле, не является платформой для того, чтобы просить о дальнейших планах Дарта. И некоторые механизмы java-отражения уже доступны. Наверное, вы ищете что-то вроде загрузчика классов? – Robert

+1

Вы можете сделать это без зеркал. Произвольная загрузка кода выполняется через Isolate.spawnUri(), это может загрузить исходный файл в новый изолят. Коммуникация с кодом плагина в изоляторе должна выполняться через сообщение api. Я бы не задерживал дыхание, ожидая, что Mirrors поддержит загрузку произвольного кода, так как это имеет огромную производительность и последствия для безопасности. –

ответ

2

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

В настоящее время вы можете использовать дополнительные изоляты из внешних файлов кода. В настоящее время это громоздко в браузере, потому что изолированный в браузере не обеспечивает доступ не только к DOM, но и к любому API-интерфейсу браузера, который чрезвычайно ограничен. Но, насколько я понимаю, запланированы улучшения или, возможно, уже начаты работы.

+1

Только что заметил это: [spawnDomUri] (https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart:html#id_spawnDomUri). –

+0

Отлично! Не понял, что там уже что-то есть. –

+0

Меня тоже! ___ –

Смежные вопросы