public void ClickEdit(TItem clickedItem)
{
Crud = CrudEnum.Update;
foreach (PropertyInfo prop in typeof(TItem).GetProperties())
{
prop.SetValue(EditItem, typeof(TItem).GetProperty(prop.Name).GetValue(clickedItem), null);
}
}
Я создал описанный выше метод для циклического прохождения универсального типизированного экземпляра и использования значения этого экземпляра для установки значений в другом экземпляре того же типа.
Однако некоторые свойства TItem доступны только для чтения, и в этом случае будут генерироваться исключения.
Каков правильный способ пропустить свойства, доступные только для чтения, и установить только те свойства, которые можно установить?
Спасибо!
вы можете попробовать проверить свойство CanWrite
:
class Program
{
static void Main(string[] args)
{
Demo demo = new Demo();
foreach (PropertyInfo property in demo.GetType().GetProperties())
{
if (property.CanWrite)
{
property.SetValue(demo, "New value");
}
}
}
}
public class Demo
{
public string ReadOnlyProperty { get; }
public string ReadWriteProperty { get; set; }
}
С наилучшими пожеланиями
Пожалуйста, опубликуйте полное исключение или довольно близкий вопрос как дубликат.