Вы можете использовать отражение, чтобы сделать это следующим образом:
PropertyInfo property = YourDtoClass.GetType().GetProperty("ThePropertyName");
if (property != null)
{
property.SetValue(theTargetObject, theValue);
}
Здесь мы сначала получаем свойство класса, в котором определены ваши свойства (через отражение и имя свойства).Если свойство найдено с нужным именем, мы затем устанавливаем значение свойства для целевого объекта.
Или используя поля вместо свойств:
FieldInfo field = YourDtoClass.GetType().GetField("theFieldName");
if (field != null)
{
field.SetValue(theTargetObject, theValue);
}
Обновление
Этот метод действительно безопасен (с точки зрения безопасности, как прокомментировали другие), если целевой объект, для которого вы устанавливаете значения, является чисто DTO, где все поля \ свойства предназначены для заполнения значениями строки запроса,Это была оригинальная точка зрения моего ответа.Если целевой объект содержит поля, которые не следует устанавливать из значений строки запроса, не используйте этот метод, поскольку поля \ свойства, которые не предназначены для установки из значений строки запроса, могут быть.
Если вашцелевой объект - это DTO, тогда с вышесказанным все в порядке.Я предполагаю, что это так.