#c# #windows-runtime
#c# #windows-среда выполнения
Вопрос:
Иногда во время выполнения Windows требуется вернуть список свойств класса, которые реализуют определенный интерфейс. К сожалению, некоторые из .Вспомогательные методы Net, которые сделали это возможным, отсутствуют или перемещены. Как вы отражаете свойства, которые реализуют определенный интерфейс?
Ответ №1:
Вот так:
using System.Reflection;
/// <summary>Finds properties that implement a type</summary>
/// <param name="parent">The parent type</param>
/// <param name="type">The filter type</param>
/// <returns>Enumerable of PropertyInfo</returns>
IEnumerable<PropertyInfo> Properties(Type parent, Type type)
{
var typeinfo = type.GetTypeInfo();
var properties = parent.GetRuntimeProperties();
foreach (PropertyInfo property in properties)
{
var propertytypeinfo = property.PropertyType.GetTypeInfo();
if (typeinfo.IsAssignableFrom(propertytypeinfo))
yield return property;
}
}
Удачи!