/// <summary> /// Returns a service object given the specified <see cref="T:System.ServiceModel.InstanceContext"/> object. /// </summary> /// <param name="instanceContext">The current <see cref="T:System.ServiceModel.InstanceContext"/> object.</param> /// <param name="message">The message that triggered the creation of a service object.</param> /// <returns>The service object.</returns> public object GetInstance(InstanceContext instanceContext, Message message) { var extension = new AutofacInstanceContext(_rootLifetimeScope); instanceContext.Extensions.Add(extension); return(extension.ResolveComponent(_registration, Enumerable.Empty <Parameter>())); }
/// <summary> /// Returns a service object given the specified <see cref="T:System.ServiceModel.InstanceContext"/> object. /// </summary> /// <param name="instanceContext">The current <see cref="T:System.ServiceModel.InstanceContext"/> object.</param> /// <param name="message">The message that triggered the creation of a service object.</param> /// <returns>The service object.</returns> /// <exception cref="System.ArgumentNullException"> /// Thrown if <paramref name="instanceContext" /> is <see langword="null" />. /// </exception> public object GetInstance(InstanceContext instanceContext, Message message) { if (instanceContext == null) { throw new ArgumentNullException("instanceContext"); } var extension = new AutofacInstanceContext(_rootLifetimeScope); instanceContext.Extensions.Add(extension); return(extension.Resolve(_serviceData)); }
/// <summary> /// Returns a service object given the specified <see cref="T:System.ServiceModel.InstanceContext"/> object. /// </summary> /// <param name="instanceContext">The current <see cref="T:System.ServiceModel.InstanceContext"/> object.</param> /// <param name="message">The message that triggered the creation of a service object.</param> /// <returns>The service object.</returns> /// <exception cref="System.ArgumentNullException"> /// Thrown if <paramref name="instanceContext" /> is <see langword="null" />. /// </exception> public object GetInstance(InstanceContext instanceContext, Message message) { if (instanceContext == null) { throw new ArgumentNullException("instanceContext"); } var autofacInstanceContext = new AutofacInstanceContext(_rootLifetimeScope); instanceContext.Extensions.Add(autofacInstanceContext); try { return(autofacInstanceContext.Resolve(_serviceData)); } catch (Exception) { autofacInstanceContext.Dispose(); instanceContext.Extensions.Remove(autofacInstanceContext); throw; } }