static private Aspect.Directory.Entry Obtain(MethodBase method) { var _method = method; if (_method.DeclaringType != _method.ReflectedType) { if (_method is MethodInfo) { _method = (_method as MethodInfo).GetBaseDefinition(); } _method = _method.DeclaringType.FindMembers(MemberTypes.Method, BindingFlags.Static | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.DeclaredOnly, (_Method, _Criteria) => _Method is ConstructorInfo || _Method is MethodInfo && (_Method as MethodInfo).GetBaseDefinition() == _method, null).Single() as MethodBase; } if (Aspect.Directory.m_Dictionary.TryGetValue(method, out var _entry)) { return(_entry); } _entry = new Aspect.Directory.Entry(_method.DeclaringType, _method, new Aspect.Activity(_method.DeclaringType, _method)); Aspect.Directory.m_Dictionary.Add(_method, _entry); return(_entry); }
public Debugger(Aspect.Directory.Entry map) { this.m_Map = map; }
static public string Display(Aspect.Directory.Entry map) { return(string.Concat(map.Type.Declaration(), ".", map.Method.Declaration(), " = ", map.m_Aspectization.Count.ToString())); }