/// <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; }
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)); }