public void Intercept(IInvocation invocation) { var report = _reportFactory.CurrentTestReport; EventReportAttribute attribute = GetEventReportAttribute(invocation); if (report != null && IsAligibleForReporting(invocation, attribute)) { ReportAndProceed(invocation, report); } else { invocation.Proceed(); } }
private static Boolean IsAligibleForReporting(IInvocation invocation, EventReportAttribute attribute) { if (attribute != null && attribute.Ignore) { return(false); } if (invocation.Method.IsSpecialName) { return(IsPropertySetter(invocation)); } if (invocation.Method.GetBaseDefinition().DeclaringType == typeof(Object)) { return(false); } return(true); }