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);
        }
示例#3
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.");
        }