Я пытаюсь написать код, который устанавливает свойство в struct (важно, что это свойство в структуре), и он не работает:
System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle();
PropertyInfo propertyInfo = typeof(System.Drawing.Rectangle).GetProperty("Height");
propertyInfo.SetValue(rectangle, 5, null);
Значение высоты (как сообщается отладчиком) никогда не устанавливается ни на что: оно остается на значении по умолчанию 0.
Я уже много раз размышлял над классами, и это сработало хорошо. Кроме того, я знаю, что при работе с structs вам нужно использовать FieldInfo.SetValueDirect, если вы устанавливаете поле, но я не знаю об эквиваленте для PropertyInfo.