public DefaultSendRpcRequestWithTelemetryStrategy( Uri apiUrl, TimeSpan connectionTimeout, IHttpClientFactory httpClientFactory, ITelemetryConsumer telemetryConsumer) : base(apiUrl, connectionTimeout, httpClientFactory) { _telemetryConsumer = telemetryConsumer; _dependencyName = apiUrl.Authority; }
private static ITelemetryConsumer GetTelemetryConsumer(IServiceProvider serviceProvider, Type consumerType) { ITelemetryConsumer consumer = null; // first check whether it is registered in the container already consumer = (ITelemetryConsumer)serviceProvider.GetService(consumerType); if (consumer == null) { consumer = (ITelemetryConsumer)ActivatorUtilities.CreateInstance(serviceProvider, consumerType); } return(consumer); }
private static ITelemetryConsumer GetTelemetryConsumer(IServiceProvider serviceProvider, Type consumerType, IReadOnlyDictionary <string, object> activationProperies) { ITelemetryConsumer consumer = null; if ((activationProperies?.Count ?? 0) == 0) { // first check whether it is registered in the container already consumer = (ITelemetryConsumer)serviceProvider.GetService(consumerType); } if (consumer == null) { consumer = (ITelemetryConsumer)ActivatorUtilities.CreateInstance(serviceProvider, consumerType, activationProperies?.Values?.ToArray() ?? new object[0]); } return(consumer); }