Esempio n. 1
0
        public bool TryParse(string input, IFormatProvider format, out object result)
        {
            var constructors = _targetType
                               .GetConstructors()
                               .Where(x => x.IsPublic)
                               .Where(x => x.GetParameters().Length == 1)
                               .ToArray();

            if (constructors.Length == 1)
            {
                var constructor = constructors[0];

                var parameter = constructor.GetParameters().Single();
                var parser    = new DefaultChangeTypeParser(parameter.ParameterType);

                object value;

                if (parser.TryParse(input, format, out value))
                {
                    result = constructor.Invoke(new[] { value });
                    return(true);
                }
            }

            result = null;
            return(false);
        }
        public bool TryParse(string input, IFormatProvider format, out object result)
        {
            var constructors = _targetType
                .GetConstructors()
                .Where(x => x.IsPublic)
                .Where(x => x.GetParameters().Length == 1)
                .ToArray();

            if (constructors.Length == 1)
            {
                var constructor = constructors[0];

                var parameter = constructor.GetParameters().Single();
                var parser = new DefaultChangeTypeParser(parameter.ParameterType);

                object value;

                if (parser.TryParse(input, format, out value))
                {
                    result = constructor.Invoke(new[] {value});
                    return true;
                }
            }

            result = null;
            return false;
        }