bri*_*137 6 .net reflection types
System.Reflection.MemberTypes有八个不同的枚举值.五直接映射到特定的MemberInfo类(ConstructorInfo,MemberInfo等).MemberTypes.NestedType可以被认为是Type而不是MemberInfo.我正试图解决(1)MemberTypes.Custom和(2)MemberTypes.TypeInfo成员.有没有人有这样的成员的例子?
public class Foo
{
public class Bar { }
}
Run Code Online (Sandbox Code Playgroud)
对于这两个类,以下内容将成立。
typeof(Foo).MemberType == MemberTypes.TypeInfo
typeof(Foo.Bar).MemberType == MemberTypes.NestedType
Run Code Online (Sandbox Code Playgroud)
和TypeInfo都NestedType表明您正在处理一个类型,并区分该类型是否嵌套。枚举值TypeInfo只是遵循命名约定,而 的实际子类型MemberInfo是Type。一方面Type应该被要求TypeInfo遵守命名约定,另一方面,它的Type起源似乎有点可疑MemberInfo。但事实就是如此。也许成员 inMemberInfo应该更好地理解为程序集或类型成员,而不仅仅是类型成员。
从 .NET 4.5 开始,有新的子类TypeInfo继承Type并可以使用Type.GetTypeInfo()扩展方法进行访问;请参阅那里的区别。
我不确定,MemberTypes.Custom但查看CLI 规范,尤其是 II.10.2,这可能是指与类型关联的自定义属性或其他自定义数据。查看.NET 参考源代码也无法提供额外的见解。