/// <summary> /// Initial the container with this extension's functionality. /// </summary> /// <param name="container">The container this extension to extend.</param> public void Initialize(IServiceContainer container) { container.Registering += OnRegistering; var interceptor = new ServiceInterceptor(container); ((WindsorServiceContainer)container).RegisterInstance(typeof(ServiceInterceptor), interceptor); container.UseDefaultInterceptorFactory(); interceptor.PipelineManager = new PipelineManager(container.GetInstance <IInterceptorFactory>()); }
public void DisposesLifetimeScopeWhenTriggerMethodInvoked(string methodName) { var lifetimeScope = new Mock <ILifetimeScope>(MockBehavior.Strict); lifetimeScope.Setup(x => x.Dispose()).Verifiable(); var invocation = new Mock <IInvocation>(MockBehavior.Strict); invocation.Setup(x => x.Proceed()).Verifiable(); invocation.Setup(x => x.Method.Name).Returns(methodName).Verifiable(); var interceptor = new ServiceInterceptor(lifetimeScope.Object); interceptor.Intercept(invocation.Object); lifetimeScope.Verify(); invocation.Verify(); }
public async Task RenderViewAsync <TModel>(string viewName, string outputName, TModel model) { var localizationOptions = _serviceProvider.GetService <IOptions <RequestLocalizationOptions> >()?.Value; var interceptor = new ServiceInterceptor(_serviceProvider); var renderer = new RazorViewRenderer ( _viewEngine, _tempDataProvider, interceptor, _modelMetadataProvider ); renderer.PrepareView(viewName); if (localizationOptions != null && localizationOptions.DefaultRequestCulture != null && localizationOptions.DefaultRequestCulture.UICulture != null) { await ExecuteWithCulture( async() => { await renderer.RenderViewToFileAsync(outputName, model); }, localizationOptions.DefaultRequestCulture.UICulture); } else { await renderer.RenderViewToFileAsync(outputName, model); } if (interceptor.UseLocalization && localizationOptions != null && localizationOptions.SupportedUICultures != null && localizationOptions.SupportedUICultures.Count > 0) { foreach (var culture in localizationOptions.SupportedUICultures) { if (culture != localizationOptions?.DefaultRequestCulture?.UICulture) { await ExecuteWithCulture( async() => { await renderer.RenderViewToFileAsync( addCultureToFileName(outputName, culture), model); }, culture); } } } }