public MethodInfo(System.Reflection.MethodInfo mi)
{
name = mi.Name;
// get acces modifires
modificators = GetModificators(mi.GetType()) + mi.ToString();
if (mi.IsAbstract && !mi.DeclaringType.IsInterface)
{
modificators += "abstract ";
}
if (mi.GetCustomAttribute(typeof(AsyncStateMachineAttribute)) != null)
{
modificators += "async ";
}
if ((mi.MethodImplementationFlags & MethodImplAttributes.InternalCall) != 0)
{
modificators += "extern ";
}
if (!mi.Equals(mi.GetBaseDefinition()))
{
modificators += "overriden ";
}
if (mi.IsVirtual && mi.IsFinal)
{
modificators += "sealed ";
}
if (mi.IsStatic)
{
modificators += "static ";
}
if (mi.IsVirtual && !mi.IsFinal && mi.Equals(mi.GetBaseDefinition()) && !mi.DeclaringType.IsInterface)
{
modificators += "virtual ";
}
}