-1
die Klasse hier:Wie erhalte ich MemberInfo's MemberInfo?
public partial class CodeMergeNodeHandler
{
[State]
public enum State
{
[Finish]
[Label("合并成功")]
Accepted,
[Start]
[Label("创建成功")]
Created,
}
}
ich die Member des Staates hatte hat bekam:
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;
}
}
Ich versuche, die Mitglieder des memberOfState zu bekommen, die Accepted
und die Created
:
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);
}
Warum member
haben keine Methode wie GetMembers()
, aber wenn ich Debug wie das Bild, das Ziel ist in der DeclaredMembers
, und wie kann ich sie bekommen ??
Wie ich weiß, '' 'MemberInfo''' ist die Basisklasse von' '' Type'''. –