/// <summary> /// Initializes a new instance of the <see cref="ConsoleInstrumentationReporter"/> class. /// </summary> /// <param name="invocationCounter">The <see cref="MethodInvocationCounter"/> to report on. /// </param> /// <param name="invocationTimer">The <see cref="MethodInvocationTimer"/> to report on. /// </param> /// <param name="dateTimeProvider">The <see cref="IDateTimeProvider"/> to use to /// provide the report time.</param> /// <param name="guidProvider">The <see cref="IGuidProvider"/> to use to generate a /// report id.</param> /// <exception cref="ArgumentNullException"><paramref name="invocationCounter"/>, /// <paramref name="invocationTimer"/>, <paramref name="dateTimeProvider"/>, or /// <paramref name="guidProvider"/> is <see langword="null"/>.</exception> public ConsoleInstrumentationReporter( MethodInvocationCounter invocationCounter, MethodInvocationTimer invocationTimer, IDateTimeProvider dateTimeProvider, IGuidProvider guidProvider) { ParameterValidation.IsNotNull(invocationCounter, nameof(invocationCounter)); ParameterValidation.IsNotNull(invocationTimer, nameof(invocationTimer)); ParameterValidation.IsNotNull(dateTimeProvider, nameof(dateTimeProvider)); ParameterValidation.IsNotNull(guidProvider, nameof(guidProvider)); this.invocationCounter = invocationCounter; this.invocationTimer = invocationTimer; this.dateTimeProvider = dateTimeProvider; this.guidProvider = guidProvider; }
/// <summary> /// Initializes a new instance of the <see cref="InstrumentationInterceptor" /> class. /// </summary> /// <param name="invocationCounter">The <see cref="MethodInvocationCounter"/> to use to /// count any interceptions.</param> /// <param name="invocationTimer">The <see cref="MethodInvocationTimer"/> to use to time any /// interceptions.</param> /// <param name="registrars">The <see cref="IRegistrar"/> any interceptions will register /// to.</param> /// <param name="guidProvider">The <see cref="IGuidProvider"/> to use to generate /// an interception id.</param> /// <exception cref="ArgumentNullException"><paramref name="invocationCounter"/>, /// <paramref name="invocationTimer"/>, <paramref name="registrars"/>, or /// <paramref name="guidProvider"/> is <see langword="null"/>.</exception> public InstrumentationInterceptor( MethodInvocationCounter invocationCounter, MethodInvocationTimer invocationTimer, IEnumerable <IRegistrar> registrars, IGuidProvider guidProvider) { ParameterValidation.IsNotNull(invocationCounter, nameof(invocationCounter)); ParameterValidation.IsNotNull(invocationTimer, nameof(invocationTimer)); ParameterValidation.IsNotNull(registrars, nameof(registrars)); ParameterValidation.IsNotNull(guidProvider, nameof(guidProvider)); this.invocationCounter = invocationCounter; this.invocationTimer = invocationTimer; this.registrars = registrars; this.guidProvider = guidProvider; }