Из-за чего атрибут JsonPropertyName не работает с шаблоном параметров?
У меня в appsetting записаны GoogleCredential в таком виде:
|
1 |
"type": "", "project_id": "" "private_key_id": "", "private_key": "", "client_email": "", "client_id": "", "auth_uri": "" "token_uri": "", "auth_provider_x509_cert_url": "", "client_x509_cert_url": "", "universe_domain": "" |
Я создал класс для шаблона параметров:
|
1 |
public class GoogleConfig { public const string SectionName = "GoogleBucket"; public GoogleCredentialProperty GoogleCredential { get; set; } = new(); public string GoogleCloudStorageBucket { get; set; } = string.Empty; } [JsonObject] public class GoogleCredentialProperty { [JsonPropertyName("type")]public string Type { get; set; } = string.Empty; [JsonPropertyName("project_id")] public string ProjectId { get; set; } = string.Empty; } |
Добавил сервис:
|
1 |
builder.Services.Configure<GoogleConfig>(builder.Configuration.GetSection(GoogleConfig.SectionName)); |
Когда через дебаг прошел, оказалось что в объекте GoogleСonfig значение есть только у поля Type
Дополнительно:
Содержание
ну я бы на всякий случай проверил наличие русских букв "о", "е", "с" в имени проперти и json
надо использовать [ConfigurationKeyName("type")]
https://github.com/dotnet/runtime/issues/36010
https://learn.microsoft.com/en-us/dotnet/api/micro...
- Спасибо за помощь
Ответы:
project_id без запятой.. мб в этом дело?
- Это просто шаблон с названиями полей, и проект бы не скопилировался, если бы в appsetting была опечатка
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
Проблема с неработающим атрибутом JsonPropertyName в шаблоне параметров может возникнуть из-за нескольких возможных причин. Одной из них может быть неправильное использование атрибута JsonPropertyName в сочетании с шаблоном параметров.
Возможно, что вы пытаетесь использовать атрибут JsonPropertyName для указания имени свойства в шаблоне параметров, но это не является корректным использованием атрибута. Атрибут JsonPropertyName должен быть применен к свойству класса, чтобы указать имя, которое будет использоваться при сериализации объекта в JSON.
Для решения этой проблемы, убедитесь, что вы применяете атрибут JsonPropertyName к свойству класса, а не к шаблону параметров. Например, если у вас есть класс с шаблоном параметров, вы можете создать отдельный класс с нешаблонными свойствами и применить атрибут JsonPropertyName к этим свойствам.
Пример:
Таким образом, убедившись, что атрибут JsonPropertyName применен к правильному месту в вашем коде, вы должны быть в состоянии исправить проблему с его неработающим использованием в шаблоне параметров.