У меня ниже DTO
класс в C#
public class Customer
{
public int Id { get; set;}
public string Name { get;set;}
// & so on (say 25 properties)
}
Я использую DynmoDb
в качестве Db (NoSql), чтобы добавить вышеуказанный элемент в таблицу DynamoDb.Вот как выглядит мой метод
public async Task<bool> Add(Customer customer)
{
try
{
var res = await _dynamoClient.PutItemAsync(
tableName: _tableName, item: SetObject(customer)).ConfigureAwait(false);
return res.HttpStatusCode == System.Net.HttpStatusCode.OK
}
catch (Exception ex)
{
Logger.Log(ex, eventObj);
return false;
}
}
Закрытый метод SetObject (): -
private Dictionary<string, AttributeValue> SetObject(Customer obj)
{
//DynamoDb - Using Low Level API
var attributes = new Dictionary<string,
AttributeValue> {
//Id
{
nameof(obj.Id),
new AttributeValue {
S = obj.Id
}
},
//Name
{
nameof(obj.Name),
new AttributeValue {
S = obj.Name.Trim()
}
},
};
return attributes;
}
Этот закрытый метод выглядит громоздким и подверженным ошибкам.Я не хочу просматривать каждое свойство по одному таким образом.
Я думаю, есть ли какой-нибудь способ перебрать все свойства и назначить name
& value
для Dictionary
collection
var propsList = typeof(EventTO).GetProperties().Select(x => x.Name).ToList<string>();
Это дает мне все имена свойств, но как мне получить значение и ключ из переданного объекта типа customer.
Спасибо!