У меня проблема с тем, что мне нужно получить все свойства объекта, затем отсортировать свойства и отправить значения определенных свойств другому сервису. Вот пример кода:
public class Class1
{
public string A { get; set; }
public bool B { get; set; }
}
public class Class2 : Class1
{
public new bool? B { get; set; }
public bool C { get; set; }
}
Мне нужно получить все свойства Class2, однако при использовании Class2.GetType (). GetProperties () результат содержит B из Class2 И Class1. Это вызывает мою проблему, так как при циклическом прохождении каждого свойства я отправляю B дважды, одно со значением по умолчанию, равным false, поскольку оно никогда не устанавливалось, затем другое с правильным значением, которое было установлено моей службой. Мне нужно, чтобы результат содержал B из Class2, A из Class1 и C из Class2, но игнорирую B из Class1, так как он был скрыт с новым ключевым словом.
Я попытался просмотреть флаги привязки, которые могу использовать, но это не помогло. Ближайший флаг, который я могу найти, это флаг BindingFlags.DeclaredOnly, но он исключает A из Class1, поэтому он не будет работать для меня.
Как бы я проигнорировал исходное свойство, если оно было скрыто?