示例#1
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="compositionProvider"></param>
 public MvcMefDependencyResolver(CompositionContextProvider compositionProvider)
 {
     if (compositionProvider == null)
     {
         throw new ArgumentNullException("compositionProvider");
     }
     _compositionProvider = compositionProvider;
 }
示例#2
0
 /// <summary>
 /// constructor
 /// </summary>
 /// <param name="compositionProvider"></param>
 public MvcMefControllerFactory(CompositionContextProvider compositionProvider)
 {
     if (compositionProvider == null)
     {
         throw new ArgumentNullException("compositionProvider");
     }
     _compositionProvider = compositionProvider;
 }
        /// <summary>
        /// Get a composition sub container scoped to the http request
        /// </summary>
        /// <returns></returns>
        public CompositionContext GetCompositionContext()
        {
            var currentHttpContext = HttpContext.Current;
            var export             = CompositionContextProvider.GetCurrentCompositionContext(currentHttpContext);

            if (export == null)
            {
                export = _compositionContextFactory.CreateExport();
                AddCompositionContext(currentHttpContext, export);
            }
            return(export.Value);
        }
示例#4
0
 /// <summary>
 /// Disposes of composition contexts (if any) which were allocated in the http request
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnEndRequest(object sender, EventArgs e)
 {
     CompositionContextProvider.DisposeCurrentCompositionContext(HttpContext.Current);
 }