Функция registerExtension
void registerExtension(Регистрация ServiceExtensionHandler, который будет вызван в данном изолированном процессе для method. ПРИМЕЧАНИЕ: Расширения протокола сервиса должны быть зарегистрированы в каждом изолированном процессе.
ПРИМЕЧАНИЕ: method должно начинаться с 'ext.' и вы должны использовать следующую структуру, чтобы избежать конфликтов с другими пакетами: 'ext.package.command'. То есть, сразу после префикса 'ext.' должен быть указан регистрируемый пакет, за которым следует точка ('.') и затем имя команды. Например: 'ext.dart.io.getOpenFiles'.
Поскольку расширения сервиса специфичны для изолированных процессов, клиенты, использующие расширения, должны всегда включать параметр 'isolateId' в каждый RPC.
Исходный код
void registerExtension(String method, ServiceExtensionHandler handler) {
if (method is! String) {
throw new ArgumentError.value(method, 'method', 'Must be a String');
}
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');
}
if (handler is! ServiceExtensionHandler) {
throw new ArgumentError.value(
handler, 'handler', 'Must be a ServiceExtensionHandler');
}
_registerExtension(method, handler);
}
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-developer/registerExtension.html