/// <summary>
        ///     Include specified field to resulting typing
        /// </summary>
        /// <param name="tc">Configuration builder</param>
        /// <param name="field">Field to include</param>
        /// <returns>Fluent</returns>
        public static FieldExportBuilder WithField <T, TData>(this ITypedExportBuilder <T> tc,
                                                              Expression <Func <T, TData> > field)
        {
            var prop = LambdaHelpers.ParseFieldLambda(field);
            ClassOrInterfaceExportBuilder tcb = tc as ClassOrInterfaceExportBuilder;

            return(new FieldExportBuilder(tcb.Blueprint, prop));
        }
        /// <summary>
        ///     Include specified property to resulting typing
        /// </summary>
        /// <param name="tc">Configuration builder</param>
        /// <param name="property">Property to include</param>
        /// <returns>Fluent</returns>
        public static PropertyExportBuilder WithProperty <T, TData>(this ITypedExportBuilder <T> tc,
                                                                    Expression <Func <T, TData> > property)
        {
            var prop = LambdaHelpers.ParsePropertyLambda(property);
            ClassOrInterfaceExportBuilder tcb = tc as ClassOrInterfaceExportBuilder;

            return(new PropertyExportBuilder(tcb.Blueprint, prop));
        }
        /// <summary>
        ///     Include specified method to resulting typing.
        ///     User <see cref="Ts.Parameter{T}()" /> to mock up method parameters or specify configuration for perticular method
        ///     parameter
        /// </summary>
        /// <param name="tc">Configuration builder</param>
        /// <param name="method">Method to include</param>
        /// <returns>Fluent</returns>
        public static MethodExportBuilder WithMethod <T>(this ITypedExportBuilder <T> tc,
                                                         Expression <Action <T> > method)
        {
            var prop = LambdaHelpers.ParseMethodLambda(method);
            ClassOrInterfaceExportBuilder tcb = tc as ClassOrInterfaceExportBuilder;
            var methodConf = new MethodExportBuilder(tcb.Blueprint, prop);

            tcb.ExtractParameters(method);
            return(methodConf);
        }