C# 在WinRT中,如何反映实现接口的属性?

C# 在WinRT中,如何反映实现接口的属性?,c#,windows-runtime,C#,Windows Runtime,有时,在Windows运行时中,您希望返回实现特定接口的类属性列表。不幸的是,使这成为可能的一些.Net helper方法丢失或被移动。如何反映实现特定接口的属性?如下所示: using System.Reflection; /// <summary>Finds properties that implement a type</summary> /// <param name="parent">The parent type</param> /

有时,在Windows运行时中,您希望返回实现特定接口的类属性列表。不幸的是,使这成为可能的一些.Net helper方法丢失或被移动。如何反映实现特定接口的属性?

如下所示:

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;
    }
}
使用系统反射;
///查找实现类型的属性
///父类型
///过滤器类型
///PropertyInfo的可枚举属性
IEnumerable属性(父类型、类型)
{
var typeinfo=type.GetTypeInfo();
var properties=parent.GetRuntimeProperties();
foreach(属性中的PropertyInfo属性)
{
var propertytypeinfo=property.PropertyType.GetTypeInfo();
if(typeinfo.IsAssignableFrom(propertytypeinfo))
收益性;
}
}
祝你好运