public ITypedBuilder <TTarget> Do(Action <TTarget, IBuilder, BuildSession> setter) { if (setter == null) { throw new ArgumentNullException("setter"); } _parent.AfterPopulationOf(BuilderUtils.GetSetter <TTarget>((obj, buildr, session) => { setter(obj, buildr, session); return(obj); }, _allowInherited)); return(this); }