У меня есть функция, которая обновляет клиент в базе данных. Клиентский объект передается вместе со строковым массивом полей/свойств, которые необходимо обновить. Мне нужен способ доступа к каждому свойству в объекте клиента, основываясь на том, что находится в массиве. В принципе, я ищу для VB .NET, эквивалентном этому JavaScript:VB .NET Доступ к свойству класса по строковому значению
var fields = ["Firstname","Lastname","DOB"];
for(field in fields)
{
var thisField = fields[field];
client[thisField] = obj[thisField];
}
Любая помощь будет принята с благодарностью! Спасибо Stack.
Спасибо за отличный пример. По-видимому, отражение действительно дорого. Это правда? Если это так (и другого способа сделать это нет), я могу написать собственные веб-службы для каждой формы. Благодаря! – Brett
Отражение может быть дорогостоящим при злоупотреблении. Я не знаю достаточно о ваших проектах, чтобы сказать, приемлемы ли накладные расходы Reflection, но есть шаги, которые вы можете предпринять (например, кэширование объектов PropertyInfo, которые вы просматриваете в словаре (Of String, PropertyInfo) ' для более быстрого извлечения), что может уменьшить накладные расходы. Я бы сказал, попробуй и посмотри, достаточно ли это. Если вы считаете, что скорость неприемлема, перейдите по пути оптимизации/кэширования или пользовательских веб-сервисов. –
Приветствия! Спасибо друг. – Brett