Пример #1
0
 /// <summary>
 ///     This method starts a scope to resolve and release all objects automatically.
 ///     You can use the <c>scope</c> in <see cref="action" />.
 /// </summary>
 /// <param name="iocResolver">IIocResolver object</param>
 /// <param name="action">An action that can use the resolved object</param>
 public static void UsingScope(this IIocManager iocResolver, Action <IIocScopedResolver> action)
 {
     using (IIocScopedResolver scope = iocResolver.CreateScope())
     {
         action(scope);
     }
 }
        public void IocManager_ScopeShouldWork()
        {
            Building(builder => { builder.RegisterServices(f => f.RegisterType <SimpleDisposableDependency>(Lifetime.LifetimeScope)); });

            SimpleDisposableDependency simpleDisposableDependency;

            using (IIocScopedResolver iocScopedResolver = LocalIocManager.CreateScope())
            {
                simpleDisposableDependency = iocScopedResolver.Resolve <SimpleDisposableDependency>();
            }

            simpleDisposableDependency.DisposeCount.ShouldBe(1);
        }