private static TypePool getTypes()
        {
            var types = new TypePool(FubuRegistry.FindTheCallingAssembly());

            var filter = new CompositeFilter <Assembly>();

            filter.Excludes.Add(a => a.IsDynamic);
            filter.Excludes.Add(a => types.HasAssembly(a));
            filter.Includes += (t => true);

            types.AddSource(() => AppDomain.CurrentDomain.GetAssemblies().Where(filter.MatchesAll));

            return(types);
        }
        private TypePool typePool()
        {
            var pool = new TypePool(GetType().Assembly);

            var externalAssemblyDuplicatedType = generateType("namespace FubuMVC.Spark.Tests.SparkModel.Binding{public class DuplicatedGeneric<T>{}}", "FubuMVC.Spark.Tests.SparkModel.Binding.DuplicatedGeneric`1");

            pool.AddType <Bar>();
            pool.AddType <Baz>();
            pool.AddType <Generic <Baz> >();
            pool.AddType <Generic <Bar> >();
            pool.AddType <Generic <Baz, Bar> >();
            pool.AddType <DuplicatedGeneric <Bar> >();
            pool.AddSource(() => new[] { externalAssemblyDuplicatedType.Assembly, GetType().Assembly });
            pool.AddType(externalAssemblyDuplicatedType);

            return(pool);
        }
 public AppliesToExpression ToAllPackageAssemblies()
 {
     _pool.AddSource(() => PackageRegistry.PackageAssemblies);
     return(this);
 }