Было бы намного проще конкретно ответить на этот вопрос, если бы вы предоставили примеры кода (из самоанализ XML), чтобы проиллюстрировать проблему.
Я собираюсь догадаться, что вы хотите, чтобы MyMethod
был полиморфным. Это не является функцией системы типов D-Bus по умолчанию (все списки аргументов должны быть конкретно набраны).
Вы можете реализовать это самостоятельно, используя один аргумент типа a{sv}
, т.е. MyMethod (a{sv} args)
. Тип D-Bus a{sv}
представляет собой словарь строковых ключей для вариантов значений и может содержать ноль или более таких пар. Вы можете использовать его, чтобы разрешить переменное число хорошо документированных пар ключ / значение аргумента в ваш метод.
Возможно, вы захотите прочитать Рекомендации по проектированию D-Bus API для получения дополнительных советов о том, как разрабатывать хорошие API D-Bus.