Exemple #1
0
        /// <summary>
        /// Appends member and context to builder.
        /// </summary>
        /// <param name="expression">Expression pointing to field or property to include.</param>
        /// <param name="context">Context associated with selected member.</param>
        /// <typeparam name="TMember">Type of selected field or property.</typeparam>
        /// <returns>Updated builder instance.</returns>
        protected TBuilder AppendExplicit <TMember>(Expression <Func <TTarget, TMember> > expression, TContext context)
        {
            var ctx = new MemberContext <TContext>(SelectedMember.Create(expression), context, ExplicitMember);

            _memberContexts.Remove(ctx);
            _memberContexts.Add(ctx);

            return(this as TBuilder);
        }
Exemple #2
0
 /// <summary>
 /// Includes referenced field or property into members available to object being built.
 /// </summary>
 /// <param name="fieldOrPropertyGetter">Expression pointing to field or property to include.</param>
 /// <typeparam name="TMember">Type of selected field or property.</typeparam>
 /// <returns>Updated builder instance.</returns>
 /// <exception cref="ArgumentException">
 /// <paramref name="fieldOrPropertyGetter"/> is not field or property accessor expression.
 /// </exception>
 public TBuilder Append <TMember>(Expression <Func <TTarget, TMember> > fieldOrPropertyGetter)
 {
     _memberContexts.Add(CreateImplicitMemberContext(SelectedMember.Create(fieldOrPropertyGetter)));
     return(this as TBuilder);
 }