示例#1
0
        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"));
        }
示例#2
0
        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)));
        }
示例#3
0
 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);
 }
示例#4
0
        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());
        }