Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取命名空间的所有静态成员_C#_Reflection - Fatal编程技术网

C# 获取命名空间的所有静态成员

C# 获取命名空间的所有静态成员,c#,reflection,C#,Reflection,我有一个静态成员的类。 我想得到一个所有静态成员的列表,它们的类在名称空间“foo”中定义并从类“bar”继承 类似于list x=typeof(this.staticmembers.where(namespace==“foo”) TRY1: 这给了我一个成员信息列表,但我想要这些项目本身 因此,我可以将每个项目与另一个项目进行比较。我认为这会起作用。有可能有一些打字错误,我无法测试 var list x = GetType().Assembly.GetTypes()

我有一个静态成员的类。 我想得到一个所有静态成员的列表,它们的类在名称空间“foo”中定义并从类“bar”继承

类似于
list x=typeof(this.staticmembers.where(namespace==“foo”)

TRY1:

这给了我一个成员信息列表,但我想要这些项目本身


因此,我可以将每个项目与另一个项目进行比较。

我认为这会起作用。有可能有一些打字错误,我无法测试

var list x = GetType().Assembly.GetTypes()
                    .Where(x => x.Namespace == "foo" && typeof(bar).IsAssignableFrom(x))
                    .SelectMany(x => x.GetMembers(BindingFlags.Static));
您可能需要添加BindingFlags.Public

x.GetMembers(BindingFlags.Static | BindingFlags.Public)

您想在名称空间中获得所有静态
类型
,对吗?不是所有在命名空间中定义的
类型
的静态成员吗?我相信静态类型不能从其他类型继承,因此他可能希望那些类型的静态成员让我走上正确的道路。但我似乎无法获得成员本身,只有成员信息。你能帮忙吗?会员信息是会员的代表。你到底需要什么?你所说的“会员本身”是什么意思?
x.GetMembers(BindingFlags.Static | BindingFlags.Public)