public void InBinFolder_Returns_All_Dlls()
        {
            var tf = new TypeFinder();
            var loader = new AssemblyLoader(tf);
            loader.InBinFolder();

            tf.ShouldNotBeNull();
            tf.Assemblies.Count().ShouldEqual(6);
        }
        public void Can_Find_Types_Implementing_Interface()
        {
            var tf = new TypeFinder();
            tf.AddAssembly(GetType().Assembly);
            var iFooTypes = tf.TypesImplementing<ITypeFoo>();

            iFooTypes.ShouldNotBeNull();
            iFooTypes.Count().ShouldEqual(2);
        }
        public void Can_Find_Types_Implementing_Base_Class()
        {
            var tf = new TypeFinder();
            tf.AddAssembly(GetType().Assembly);
            var fooType = tf.TypesImplementing<TypeFoo>();

            fooType.ShouldNotBeNull();
            fooType.Count().ShouldEqual(1);
        }
示例#4
0
        public static INancyApplication BootstrapApplication()
        {
            var typeFinder = new TypeFinder();
            var bootStrapperType = typeFinder
                .TypesImplementing<NancyBootstrapper>()
                .ConcreteClasses()
                .CanCreateInstance()
                .FirstOrDefault() ?? typeof(DefaultBootstrapper);
            var bootStrapper = Activator.CreateInstance(bootStrapperType) as NancyBootstrapper;

            if (bootStrapper != null) return bootStrapper.Bootstrap();
            throw new InvalidOperationException("Can't find NancyBootstrapper.");
        }
示例#5
0
 public AssemblyLoader(TypeFinder finder)
 {
     _typeFinder = finder;
 }
示例#6
0
        private void ProcessRegistrationList(RegistrationList registrationList, TypeFinder finder)
        {
            foreach (var registration in registrationList)
            {
                var serviceType = registration.ServiceType;
                var handler = registration.Handler;
                var typeFilter = registration.TypeFilter;

                var registrationTypes = finder.Types.Where(type => typeFilter(type, serviceType)).AsEnumerable();

                foreach (Type type in registrationTypes)
                {
                    handler(this.Container, serviceType, type);
                }
            }
        }
 public void Default_Finder_Returns_One_Assembly()
 {
     var tf = new TypeFinder();
     tf.Assemblies.Count().ShouldEqual(1);
 }
        public void Default_Finder_Returns_More_Than_One_Type()
        {
            var tf = new TypeFinder();

            tf.Types.Count();
        }