using FluentValidation.Internal; using System; using System.Linq.Expressions; using System.Reflection; using zero.Core.Extensions; namespace zero.Core.Validation { public class ValidatorCamelCasePropertyResolver { public static string ResolvePropertyName(Type type, MemberInfo memberInfo, LambdaExpression expression) { return DefaultPropertyNameResolver(type, memberInfo, expression).ToCamelCaseId(); } private static string DefaultPropertyNameResolver(Type type, MemberInfo memberInfo, LambdaExpression expression) { if (expression != null) { var chain = PropertyChain.FromExpression(expression); if (chain.Count > 0) return chain.ToString(); } if (memberInfo != null) { return memberInfo.Name; } return null; } } }