/// <summary>
        /// Default constructor.
        /// </summary>
        public ExecutionContextDescriptor(Func <object> contextProvider, bool takeOwnership)
        {
            var options = new RegistrationOptions().As <ContextWrapper>();

            if (!takeOwnership)
            {
                options.ExternallyOwned();
            }

            ScopeConfigurator = cfg => cfg.RegisterInstance(new ContextWrapper(contextProvider, takeOwnership), options);
            ContextResolver   = ResolveContextWrapper;
        }
Пример #2
0
        public void RegisterInstance_should_handle_disposal_accordingly(bool expectDispose)
        {
            var instance = new Mock <IDisposable>();

            using (var container = CreateContainer())
            {
                var options = new RegistrationOptions().As(instance.Object.GetType());
                if (!expectDispose)
                {
                    options.ExternallyOwned();
                }

                using (var scope = container.BeginScope(cfg => cfg.RegisterInstance(instance.Object, options)))
                    Assert.AreSame(instance.Object, scope.Resolve(instance.Object.GetType()));
            }

            instance.Verify(x => x.Dispose(), Times.Exactly(expectDispose ? 1 : 0));
        }