BindingFlags и наследование интерфейсов - C#
Формулировка задачи:
Добрый день!
В общем BindingFlags. Получаю список свойств:
И все бы хорошо, но он не хочет видеть наследуемые свойства, например есть два интерфейса:
Получаю свойства:
на выходе только SN и theDate. Пробовал убрать DeclaredOnly, тоже не помогает. Видит только их. NonPublic тоже не помог
PropertyInfo[] p = type.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
public interface IRelized : IProductBaseble { /// <summary> /// Серийные номера проданных товаров (или их ид), тогда инт /// </summary> string SN { get; set; } /// <summary> /// Дата продажи /// </summary> DateTime theDate { get; set; } } public interface IProductBaseble { [ForReady.Libraries.DisplayedToNewForm("Артикул")] int Art { get; set; } [ForReady.Libraries.DisplayedToNewForm("Наименование")] string Name { get; set; } /// <summary> /// В списке товаров к продаже - количество товаров на складе изначально (не остаток)ъ /// В продажах - количество проданного товара в конкретной реализации /// </summary> [ForReady.Libraries.DisplayedToNewForm("Количество")] int theCount { get; set; } /// <summary> /// В списке товаров к продаже - стоимость товаров на складе изначально (не остаток)ъ /// В продажах - стоимость проданного товара в конкретной реализации /// </summary> [ForReady.Libraries.DisplayedToNewForm("Стоимость")]double Secondcost { get; set; } }
PropertyInfo[] p = typeof(IRelized).GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
Решение задачи: «BindingFlags и наследование интерфейсов»
textual
Листинг программы
public static IEnumerable<PropertyInfo> GetPublicProperties(this Type type) { if (!type.IsInterface) return type.GetProperties(); return (new Type[] { type }) .Concat(type.GetInterfaces()) .SelectMany(i => i.GetProperties()); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д