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());
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д