从类中获取所有静态属性

澳洲联储

我知道有很多这样的问题,但我找不到我想要做的任何答案。

考虑以下抽象类:

public abstract class TestBase
{
    public static ITest Test => Container.Resolve<ITest>();
    public static ITest1 Test1 => Container.Resolve<ITest1>();
    public static ITest2 Test2 => Container.Resolve<ITest2>();
    public static ITest3 Test3 => Container.Resolve<ITest3>();
}

我正在尝试获取从接口 IDummy 继承的所有属性,如下所示:

    var members = typeof(TestBase).GetMembers(BindingFlags.Static | BindingFlags.Public)
        .Where(f => f.GetType().IsAssignableFrom(typeof(IDummy)) == true);

但列表是空的。如果不添加 where 子句“ .Where(f => f.GetType().IsAssignableFrom(typeof(IDummy)) == true)”,我会得到所有结果,包括属性的 getter。

可能是微不足道的事情,但由于我对反射不太熟悉,我无法弄清楚我做错了什么。

或映射器

你从中得到的GetMembersMemberInfo实例(或者,对于字段,FieldInfo实例)。因此,您不能直接检查这些对象是否可以从IDummy.

你真正想要做的是过滤MemberInfo字段对象,然后检查FieldType这些对象中的每一个属性:

var members = typeof(TestBase).GetMembers(BindingFlags.Static | BindingFlags.Public)
    .OfType<FieldInfo>()
    .Where(f => typeof(IDummy).IsAssignableFrom(f.FieldType));

另外,请注意,我改变了IsAssignableFrom通话的主题和对象,正如帕特里克的评论中所建议的那样


正如我刚刚注意到的,您的示例似乎显示的是properties而不是fields不过,一般技术是相同的。分别使用PropertyInfoandPropertyType而不是FieldInfoand FieldType

最后,PropertyInfo您还可以GetProperties直接使用该方法的重载之一,而不是为自己过滤

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从包中获取所有类

来自分类Dev

获取给定Perl类或模块中的所有方法和/或属性

来自分类Dev

获取ADLDS类的所有可写属性

来自分类Dev

在python的类中获取所有常量

来自分类Dev

获取类的所有静态变量而无需反射

来自分类Dev

MAYA中的PYTHON:获取所有属性

来自分类Dev

无法获取DBpedia类的所有属性

来自分类Dev

从最终类中获取所有静态String值作为String Array或List

来自分类Dev

如何在Swift中获取所有静态属性?

来自分类Dev

获取类中的所有静态吸气剂

来自分类Dev

在Flutter应用中以编程方式获取Dart类中定义的所有“静态常量”

来自分类Dev

使用C#中的Selenium获取具有特定类的所有元素的属性值的列表

来自分类Dev

在静态函数中获取静态类的属性?

来自分类Dev

如何在同一个基类的方法中获取所有属性?

来自分类Dev

获取sencha类的所有静态属性

来自分类Dev

SPARQL从类或个人获取所有属性

来自分类Dev

如何仅在类中获取所有属性名称

来自分类Dev

如何在python中以列表的形式获取类的所有属性

来自分类Dev

使用反射将类中的所有静态属性作为对象获取VB.NET

来自分类Dev

具有静态属性的静态类

来自分类Dev

如何获取所有类的tcmalloc静态

来自分类Dev

在解析中获取所有相关的类

来自分类Dev

如何在Swift中获取所有静态属性?

来自分类Dev

如何获取属于 Python 3 中特定类的所有属性(继承的除外)的值

来自分类Dev

从 C# 中的类中获取所有属性名称

来自分类Dev

Swift 获取泛型类中的所有属性

来自分类Dev

获取类属性中的所有类名

来自分类Dev

如何提取/获取本体中的所有术语(类/属性)

来自分类Dev

如何从多个类中获取所有相同的属性?

Related 相关文章

热门标签

归档