public void AddAllRegistrationsFromAnyAssembliesToContainerWithASingleName() { AssemblyScanner assemblyScanner = new AssemblyScanner(); List <Assembly> assemblies = new List <Assembly>(); foreach (var fileName in Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, @"Sciendo.IOC.Tests.dll")) { assemblies.Add(Assembly.LoadFrom(fileName)); } _container.Add(assemblyScanner.From(assemblies.ToArray()).BasedOn <ExtraSampleBase>().IdentifiedBy("myownsamples").With(LifeStyle.Transient).ToArray()); List <Assembly> assemblies2 = new List <Assembly>(); foreach (var fileName in Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, @"Sciendo.IOC.Tests.SampleLib.dll")) { assemblies2.Add(Assembly.LoadFrom(fileName)); } _container.Add(assemblyScanner.From(assemblies2.ToArray()).BasedOn <ExtraSampleBase>().IdentifiedBy("extrasamples").With(LifeStyle.Transient).ToArray()); Assert.IsNotNull(_container.RegisteredTypes); Assert.AreEqual(7, _container.RegisteredTypes.Count); Assert.AreEqual(1, _container.RegisteredTypes.Count(t => t.Name == "myownsamples")); Assert.AreEqual(5, _container.RegisteredTypes.Count(t => t.Service == typeof(ExtraSampleBase))); Assert.AreEqual(2, _container.RegisteredTypes.Count(t => t.Implementation == typeof(Sciendo.IOC.Tests.Samples.Class1))); Assert.AreEqual(3, _container.RegisteredTypes.Count(t => t.Implementation == typeof(Sciendo.IOC.Tests.SampleLib.Class1))); Assert.AreEqual(1, _container.RegisteredTypes.Count(t => t.Name == "extrasamples")); }
public void AddAllRegistrationsFromThisAssembliesToContainer() { AssemblyScanner assemblyScanner = new AssemblyScanner(); _container.Add(assemblyScanner.From(Assembly.GetExecutingAssembly()).BasedOn <ISample>().With(LifeStyle.Transient).ToArray()); Assert.IsNotNull(_container.RegisteredTypes); Assert.AreEqual(2, _container.RegisteredTypes.Count); Assert.AreEqual(2, _container.RegisteredTypes.Count(t => t.Service == typeof(ISample))); Assert.AreEqual(1, _container.RegisteredTypes.Count(t => t.Implementation == typeof(Sample))); Assert.AreEqual(1, _container.RegisteredTypes.Count(t => t.Implementation == typeof(Sample2))); }
public ConfiguredContainer AddAllFromFilteredAssemblies <T>(LifeStyle lifeStyle, string additionalQualifier = null) { if (LoadedAssemblies != null && LoadedAssemblies.Any()) { foreach (var key in LoadedAssemblies.Keys) { var regTypes = _scanner.From(LoadedAssemblies[key].Distinct(new AssemblyEqualityComparer()).ToArray()) .BasedOn <T>() .IdentifiedBy(key + ((additionalQualifier) ?? "")) .With(lifeStyle).ToArray(); if (!regTypes.Any()) { LoggingManager.Debug( string.Format( "No {0} implementation found in any of the assemblies {1} registered under they key: {2}", typeof(T).FullName, string.Join(", ", LoadedAssemblies[key].Select(a => a.FullName)), key) ); } _container.Add(regTypes); } } return(this); }
public void SetUp() { _container = Container.GetInstance(); _container.Add( new RegisteredType().For <Sample>().BasedOn <ISample>().With(LifeStyle.Transient), new RegisteredType().For <Sample2>().BasedOn <ISample>().With(LifeStyle.Transient).IdentifiedBy("mysecondsample"), new RegisteredType().For <ScndSample>().BasedOn <IScndSample>().With(LifeStyle.Singleton), new RegisteredType().For <ScndSample2>().BasedOn <IScndSample>().With(LifeStyle.Singleton).IdentifiedBy("myscndsample"), new RegisteredType().For <ScndSample>().BasedOn <ISample>().With(LifeStyle.Transient).IdentifiedBy("wrong"), new RegisteredType().For <Sample>().BasedOn <ISample>().With(LifeStyle.Transient).IdentifiedBy("mysample") ); AssemblyScanner assemblyScanner = new AssemblyScanner(); List <Assembly> assemblies = new List <Assembly>(); foreach (var fileName in Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, @"Sciendo.IOC.Tests*.dll")) { assemblies.Add(Assembly.LoadFrom(fileName)); } _container.Add(assemblyScanner.From(assemblies.ToArray()).BasedOn <ExtraSampleBase>().With(LifeStyle.Transient).ToArray()); }