private static IValidationTarget CreatePropertyValidationTarget(IEnumerable<Expression<Func<object>>> properties)
        {
            IValidationTarget target;

            // Getting rid of thw "Possible multiple enumerations of IEnumerable" warning
            properties = properties.ToArray();

            if (properties.Count() == 1)
            {
                target = new PropertyValidationTarget(properties.First());
            }
            else
            {
                target = new PropertyCollectionValidationTarget(properties.Select(p => PropertyName.For(p)));
            }
            return target;
        }
        private static IValidationTarget CreatePropertyValidationTarget(IEnumerable<string> properties)
        {
            IValidationTarget target;

            // Getting rid of thw "Possible multiple enumerations of IEnumerable" warning
            properties = properties.ToArray();

            if (properties.Count() == 1)
            {
                target = new PropertyValidationTarget(properties.First());
            }
            else
            {
                target = new PropertyCollectionValidationTarget(properties);
            }
            return target;
        }