/// <summary> /// Creates the specified interceptor type. /// </summary> /// <param name="type">The type.</param> /// <returns></returns> /// <remarks>The returned type will be wrapped by the message interceptor decorator for capturing metrics</remarks> public IMessageInterceptor Create(Type type) { var interceptor = (IMessageInterceptor)_container.Create().GetInstance(type); var decorator = new MessageInterceptorDecorator(_container.Create().GetInstance <IMetrics>(), interceptor, _container.Create().GetInstance <IConnectionInformation>()); return(decorator); }
/// <summary> /// Creates the specified interceptor type. /// </summary> /// <param name="type">The type.</param> /// <returns></returns> /// <remarks>The returned type will be wrapped by the message interceptor decorator for capturing metrics</remarks> public IMessageInterceptor Create(Type type) { var interceptor = (IMessageInterceptor)_container.Create().GetInstance(type); //HACK for now - it's not clear to me if simple injector supports this pattern var decorator = new MessageInterceptorDecorator(_container.Create().GetInstance <IMetrics>(), interceptor, _container.Create().GetInstance <IConnectionInformation>()); var decorator2 = new Trace.Decorator.MessageInterceptorDecorator(decorator, _container.Create().GetInstance <ITracer>(), _container.Create().GetInstance <IStandardHeaders>()); return(decorator2); }