public static IBoundBinding <BT, CT> SetFactory <P1, BT, CT>(this IOngoingBinding <BT> binding, Expression <Func <P1, CT> > factoryExpression)
     where BT : class
     where CT : class, BT
     where P1 : class
 {
     return(SetFactoryHelper <BT, CT> (binding, factoryExpression));
 }
        /// <summary>
        /// Helper method to allow for setting of factories expressions.
        /// </summary>
        /// <returns>The factory helper.</returns>
        /// <param name="binding">Binding.</param>
        /// <param name="factoryExpression">Factory expression.</param>
        public static IBoundBinding <BT, CT> SetFactoryHelper <BT, CT>(IOngoingBinding <BT> binding, LambdaExpression factoryExpression)
            where BT : class
            where CT : class, BT
        {
            var internalBinding = (IOngoingBindingInternal <BT>)binding;

            return(internalBinding.SetFactoryLambda <CT> (factoryExpression));
        }