У меня есть проект .NET Core 2.0 с использованием AWSDynamodDb (здесь вы можете игнорировать Dynamo db, поскольку вопрос не касается DynamodDB)
У меня есть следующий класс сущности:
[DynamoDBTable("TableName")]
public class MyData
{
[DynamoDBHashKey]
public string Id{ get; set; }
public string Name{ get; set; }
}
Я хочу, чтобы "TableName" - значение, переданное в атрибут - было заполнено из моего файла appSettings.json.
{
"TableName": "NewTable"
}
Можно ли получить это значение во время выполнения, просмотрев ключ в файле appSettings?
--Обновлено--
Я вызываю класс MyData из своего контроллера, как показано ниже:
var response = await context.ScanAsync<MyData>(conditions).GetRemainingAsync();
@ gunr2171 должно быть в порядке, но о каких правках вы говорите. Я обновил свой код, проверьте.
Ой, подождите, вы говорите о попытке изменить значение атрибута [DynamoDBTable] с помощью файла конфигурации?
@ gunr2171 да, я только что понял, что он пытается сделать, я ищу, есть ли что-нибудь вроде украшения ConfigurationPropertyAttribute, которое было доступно в .NetFramework
Спасибо за правку, я должен был прояснить это при публикации. В контроллере MVC мы могли создать собственный фильтр / атрибут, поэтому я что-то искал в этих строках. Вышеупомянутый класс вызывается в моем контроллере MVC API. Я просто не хотел жестко закодировать значения атрибутов и посмотреть, есть ли возможность получить их из appSettings.json.





Просто для всех, кто сталкивался, я смог решить эту проблему, как показано ниже:
Удалите имя таблицы из модели.
А затем используйте приведенный ниже код, чтобы динамически установить имя таблицы.
public static DynamoDBOperationConfig GetDynamoDbOperationConfig(string dynamoDbTable)
{
DynamoDBOperationConfig config = new DynamoDBOperationConfig() { OverrideTableName = dynamoDbTable };
return config;
}
Мы можем вызывать эту функцию всякий раз, когда вызываем любую операцию с динамо-базой данных, такую как сканирование, сохранение, удаление и т. д.
@ gunr2171 Да, я уже использую конфигурации в своем приложении. В Startup as: services.AddSingleton <IConfiguration> (Конфигурация). И затем в моем классе, который требует ключа как: IConfiguration _configuration; _configuration ["UserId"]. Но как я могу справиться с этим атрибутом класса?