/// <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));
        }
예제 #2
0
        /// <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 PropertyExportConfigurationBuilder WithField <T, TData>(this TypeConfigurationBuilder <T> tc,
                                                                              Expression <Func <T, TData> > field)
        {
            var prop = LambdaHelpers.ParseFieldLambda(field);
            ITypeConfigurationBuilder tcb = tc;

            return(new PropertyExportConfigurationBuilder(prop, tc._blueprint));
        }
        /// <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 PropertyExportConfigurationBuilder WithField <T, TData>(this TypeConfigurationBuilder <T> tc,
                                                                              Expression <Func <T, TData> > field)
        {
            var prop = LambdaHelpers.ParseFieldLambda(field);
            ITypeConfigurationBuilder tcb = tc;

            return
                ((PropertyExportConfigurationBuilder)
                 tcb.MembersConfiguration.GetOrCreate(prop, () => new PropertyExportConfigurationBuilder(prop)));
        }
 /// <summary>
 ///     Include specified property to resulting typing
 /// </summary>
 /// <param name="tc">Configuration builder</param>
 /// <param name="property">Property to include</param>
 /// <param name="configuration">Configuration to be applied to selected property</param>
 /// <returns>Fluent</returns>
 public static ClassConfigurationBuilder <T> WithField <T, TData>(this ClassConfigurationBuilder <T> tc,
                                                                  Expression <Func <T, TData> > property, Action <PropertyExportConfigurationBuilder> configuration)
 {
     return(tc.WithFields(new[] { LambdaHelpers.ParseFieldLambda(property) }, configuration));
 }
 /// <summary>
 ///     Include specified property to resulting typing
 /// </summary>
 /// <param name="tc">Configuration builder</param>
 /// <param name="property">Property to include</param>
 /// <param name="configuration">Configuration to be applied to selected property</param>
 /// <returns>Fluent</returns>
 public static InterfaceConfigurationBuilder <T> WithField <T, TData>(this InterfaceConfigurationBuilder <T> tc,
                                                                      Expression <Func <T, TData> > property, Action <PropertyExportConfigurationBuilder> configuration)
 {
     ApplyMembersConfiguration(tc, new[] { LambdaHelpers.ParseFieldLambda(property) }, configuration);
     return(tc);
 }
예제 #6
0
 /// <summary>
 ///     Include specified field to resulting typing
 /// </summary>
 /// <param name="field">Field to include</param>
 /// <param name="configuration">Configuration to be applied to selected field</param>
 /// <returns>Fluent</returns>
 public ClassExportBuilder <T> WithField <TData>(Expression <Func <T, TData> > field, Action <PropertyExportBuilder> configuration)
 {
     ApplyMembersConfiguration(new[] { LambdaHelpers.ParseFieldLambda(field) }, configuration);
     return(this);
 }