/// <inheritdoc /> public IFactory CreateFactory() { foreach (var onCreating in OnCreatingFactory.Values) { onCreating(); } foreach (var unique in _uniques.Values) { unique(_register); } _uniques.Clear(); // no point keep them around foreach (var builder in _builders.Values) { builder.RegisterWith(_register); } _builders.Clear(); // no point keep them around Configs.RegisterWith(_register); IFactory factory = null; // ReSharper disable once AccessToModifiedClosure -- on purpose _register.Register(_ => factory, Lifetime.Singleton); factory = _register.CreateFactory(); return(factory); }
/// <inheritdoc /> public IFactory CreateFactory() { foreach (var onCreating in OnCreatingFactory.Values) { onCreating(); } foreach (var unique in _uniques.Values) { unique(_register); } _uniques.Clear(); // no point keep them around foreach (var builder in _builders.Values) { builder.RegisterWith(_register); } _builders.Clear(); // no point keep them around Configs.RegisterWith(_register); return(_register.CreateFactory()); }
private void VerifyRegisteredCount(int expected) { Assert.That(register.CreateFactory().GetAllInstances <IAbstraction>().ToArray(), Has.Length.EqualTo(expected)); }