public TracingDiagnosticMethod(ITracingDiagnosticListener diagnosticListener, MethodInfo method,
                                string diagnosticName)
 {
     _diagnosticListener = diagnosticListener;
     _method             = method;
     _diagnosticName     = diagnosticName;
     _parameterResolvers = GetParameterResolvers(method).ToArray();
 }
 public TracingDiagnosticMethodCollection(ITracingDiagnosticListener diagnosticListener)
 {
     _methods = new List <TracingDiagnosticMethod>();
     foreach (var method in diagnosticListener.GetType().GetMethods())
     {
         var diagnosticName = method.GetCustomAttribute <DiagnosticName>();
         if (diagnosticName == null)
         {
             continue;
         }
         _methods.Add(new TracingDiagnosticMethod(diagnosticListener, method, diagnosticName.Name));
     }
 }
 public TracingDiagnosticObserver(ITracingDiagnosticListener tracingdiagnosticListener)
 {
     _methodCollection = new TracingDiagnosticMethodCollection(tracingdiagnosticListener);
 }
 protected virtual void Subscribe(DiagnosticListener listener,
                                  ITracingDiagnosticListener diagnosticListener)
 {
     listener.Subscribe(new TracingDiagnosticObserver(diagnosticListener));
 }