public static void CallFactoryCreateMethod <TValue, TFactory>(DiContainer container) where TFactory : Factory <TValue> { container.Bind <IInitializable>().To <FactoryUser <TValue, TFactory> >().AsCached(); // Always create first so that you can use the asserts above container.BindInitializableExecutionOrder <FactoryUser <TValue, TFactory> >(-1); }