Example #1
0
        /// <summary>
        /// Writes trace output for a binding failure plus triggers the event <see cref="BindingDiagnostics.BindingFailed"/>.
        /// The event will not be triggered if the TraceEventType is filtered out. This overload allows specific trace and event parameters to be included.
        /// </summary>
        /// <param name="binding">The binding is only part of the event, not the trace message.</param>
        public static void TraceAndNotify(TraceEventType eventType, AvTraceDetails traceDetails, BindingExpressionBase binding, object[] traceParameters, object[] eventParameters = null)
        {
            string traceOutput = _avTrace.Trace(eventType, traceDetails.Id, traceDetails.Message, traceDetails.Labels, traceParameters);

            if (traceOutput != null && BindingDiagnostics.IsEnabled)
            {
                BindingDiagnostics.NotifyBindingFailed(new BindingFailedEventArgs(eventType, traceDetails.Id, traceOutput, binding, eventParameters));
            }
        }