Я работаю над созданием пользовательского (де) нормализатора для обработки сущностей. Я создал нормализатор и разрешил служебному контейнеру autowire / autoconfig. Сервис выбран правильно во время десериализации, но у меня проблемы с конвертером имен. Я хочу использовать сервис MetadataAwareNameConverter, поскольку я использую аннотацию @SerializedName в своей сущности. Независимо от того, что я делаю, в пользовательском нормализаторе он всегда пуст Я пробовал несколько способов получения службы конвертера имен:
- Установка этого явно в моем конструкторе классов
- Установка его в определении сервиса (эффективно избавляясь от autowire / autoconfig )
- Установка MetadataAwareNameConverter как значения по умолчанию в framework.yaml (я обнаружил, что это уже значение по умолчанию).
- Скопировал существующий нормализатор в мой sr c и переименовал его, чтобы увидеть, получил ли он правильный конвертер имен (он все еще не работал)
Встроенные нормализаторы получают конвертер имен без проблем, это просто мой собственный нормализатор, который имеет эту проблему.
Есть что-нибудь еще, что я должен попробовать? Я пропустил шаг в настройке моего сервиса? Любое направление приветствуется.
ОБНОВЛЕНИЕ - когда я сбрасываю контейнер службы, служба преобразования имен отсутствует в списке аргументов
---------------- ----------------------------------------------------------
Option Value
---------------- ----------------------------------------------------------
Service ID App\Normalizer\QNormalizer
Class App\Normalizer\QNormalizer
Tags serializer.normalizer
Public no
Synthetic no
Lazy no
Shared yes
Abstract no
Autowired yes
Autoconfigured yes
Arguments Service(serializer.mapping.class_metadata_factory)
-----THIS IS WHERE THE NAME CONVERTER SHOULD BE----
Service(property_accessor)
Service(property_info)
Service(serializer.mapping.class_discriminator_resolver)