Функция registerExtension
- String method,
- ServiceExtensionHandler handler
Зарегистрировать ServiceExtensionHandler, который будет вызван в этом изоляте для method. ПРИМЕЧАНИЕ: Расширения протокола сервиса должны быть зарегистрированы в каждом изоляте.
ПРИМЕЧАНИЕ: method должно начинаться с 'ext.' и вы должны использовать следующую структуру, чтобы избежать конфликтов с другими пакетами: 'ext.package.command'. То есть сразу после префикса 'ext.' должен следовать имя регистрируемого пакета, за которым следует точка ('.') и затем имя команды. Например: 'ext.dart.io.getOpenFiles'.
Поскольку расширения сервисов специфичны для изолята, клиенты, использующие расширения, всегда должны включать параметр 'isolateId' в каждый RPC.
Реализация
void registerExtension(String method, ServiceExtensionHandler handler) {
// TODO: When NNBD is complete, delete the following line.
checkNotNullable(method, 'method');
if (!method.startsWith('ext.')) {
throw new ArgumentError.value(method, 'method', 'Must begin with ext.');
}
if (_lookupExtension(method) != null) {
throw new ArgumentError('Extension already registered: $method');
}
// TODO: When NNBD is complete, delete the following line.
checkNotNullable(handler, 'handler');
_registerExtension(method, handler);
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-developer/registerExtension.html