public MemberConfigurationBuilder Member <TMember>(Expression <Func <T, TMember> > member) { if (member == null) { throw new ArgumentNullException(nameof(member)); } var expression = member.Body as MemberExpression; if (expression == null || !_memberTypeSupportConsultant.IsMemberTypeSupported(expression.Member.MemberType)) { // expression contains access to not [supported] member throw new ArgumentException("only supported member returning expressions are allowed to pass in \"Member\" method"); } return(new MemberConfigurationBuilder(_memberConfigurationFactory.CreateMemberConfigurationForType(expression.Member.Name, expression.Member.MemberType, Configuration))); }
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) { var property = base.CreateProperty(member, memberSerialization); if (!_memberTypeSupportConsultant.IsMemberTypeSupported(member.MemberType)) { // nothing to do here return(property); } var typeResolvingConfiguration = Configuration.TypesResolving.GetConfigurationForEntity(member.DeclaringType); if (typeResolvingConfiguration != null) { _memberTypeConfigurationHandlingRouter .GetMemberConfigurationHandlerByMemberType(member.MemberType) .HandleMemberConfiguration(member, property, typeResolvingConfiguration); } return(property); }