/// <summary> /// Sets the composition container to the ambient services. /// </summary> /// <param name="ambientServicesBuilder">The ambient services builder.</param> /// <param name="containerBuilderConfig">The container builder configuration.</param> /// <returns>The provided ambient services builder.</returns> public static AmbientServicesBuilder WithMefCompositionContainer(this AmbientServicesBuilder ambientServicesBuilder, Action<MefCompositionContainerBuilder> containerBuilderConfig = null) { Contract.Requires(ambientServicesBuilder != null); var containerBuilder = new MefCompositionContainerBuilder(new CompositionContainerBuilderContext(ambientServicesBuilder.AmbientServices)); containerBuilderConfig?.Invoke(containerBuilder); return ambientServicesBuilder.WithCompositionContainer(containerBuilder.CreateContainer()); }
/// <summary> /// Sets the composition container to the ambient services. /// </summary> /// <param name="ambientServicesBuilder">The ambient services builder.</param> /// <param name="containerBuilderConfig">The container builder configuration.</param> /// <returns>The provided ambient services builder.</returns> public static AmbientServicesBuilder WithMefCompositionContainer(this AmbientServicesBuilder ambientServicesBuilder, Action<MefCompositionContainerBuilder> containerBuilderConfig) { Contract.Requires(ambientServicesBuilder != null); Contract.Requires(containerBuilderConfig != null); var containerBuilder = new MefCompositionContainerBuilder( ambientServicesBuilder.AmbientServices.LogManager, ambientServicesBuilder.AmbientServices.ConfigurationManager, ambientServicesBuilder.AmbientServices.PlatformManager); containerBuilderConfig(containerBuilder); return ambientServicesBuilder.WithCompositionContainer(containerBuilder.CreateContainer()); }