0

我用結構圖4.5.1在我的ASP.NET MVC 5.x的Web應用程序,我做掃描接口實現並與下面的代碼添加HybridHttpOrThreadLocalScoped()爲所有這些:使用HybridHttpOrThreadLocalScoped的所有實例

public static class SmObjectFactory 
{ 
    private static readonly Lazy<StructureMap.Container> _containerBuilder = 
     new Lazy<StructureMap.Container>(DefaultContainer, LazyThreadSafetyMode.ExecutionAndPublication); 

    public static IContainer Container => _containerBuilder.Value; 

    private static StructureMap.Container DefaultContainer() 
    { 
     return new StructureMap.Container(config => 
     { 

      config.Scan(scanner => 
      { 
       scanner.AssemblyContainingType(typeof(IPostService)); 
       scanner.WithDefaultConventions(); 
       scanner.SingleImplementationsOfInterface() 
         .OnAddedPluginTypes(expression => 
         expression.HybridHttpOrThreadLocalScoped()); 
      }); 
     }); 
    } 
} 
  1. 當我使用此代碼,HybridHttpOrThreadLocalScoped()這也增加了對所有Interfacs是固有IDisposable接口?如果答案是否定的,我該怎麼做?
  2. 當我Sholud不使用HybridHttpOrThreadLocalScoped()

回答

0
  • HybridHttpOrThreadLocalScoped只是一個life-time符。所以當你指定它時,它將被用於所有請求和配置的實例,這裏它不是重要的,它不是IDisposable。這不是關於處置任何事情,而是生命時間說明符。
  • 如果您需要來自IoC容器的每個請求的新實例,請不要使用它。
+0

最佳答案Thanks @VahidN –

相關問題