Reflection 如何获取MemberInfo';会员信息?
课程在这里:Reflection 如何获取MemberInfo';会员信息?,reflection,enums,Reflection,Enums,课程在这里: public partial class CodeMergeNodeHandler { [State] public enum State { [Finish] [Label("合并成功")] Accepted, [Start] [Label("创建成功")] Created,
public partial class CodeMergeNodeHandler
{
[State]
public enum State
{
[Finish]
[Label("合并成功")]
Accepted,
[Start]
[Label("创建成功")]
Created,
}
}
我确实得到了该州的会员信息:
var members = CodeMergeNodeHandler.GetType().GetMembers();
MemberInfo memberOfState ; // the MemberInfo of the Enum State;
foreach (var member in members)
{
var attrs = member.GetCustomAttributes();
if (attrs.Any(attr => attr is StateAttribute))
{
memberOfState = member;
}
}
我尝试获取memberOfState的成员,已接受
和已创建
:
private static (string start, string end) GetStartEnd(this MemberInfo member)
{
var start = default(string);
var end = default(string);
var members = member.GetMembers(); //error, here is my question.
foreach (var sub in members)
{
var attrs = sub.GetCustomAttributes();
if (attrs.Any(attr => attr.GetType() == typeof(StartAttribute)))
{
start = sub.ToString();
}
if (attrs.Any(attr => attr.GetType() == typeof(FinishAttribute)))
{
end = sub.ToString();
}
}
return (start, end);
}
为什么member
没有方法作为GetMembers()
,但是当我像图片一样调试时,目标在DeclaredMembers
中,我如何获得它们
我解决了这个问题:
Type type = member as Type;
将MemberInfo类设为Type类,可以使用Type类的方法。据我所知,
MemberInfo
是Type
的基类。