public static object ToObject(this IDictionary <string, object> values, Type objectType)
        {
            Guard.NotEmpty(values, nameof(values));
            Guard.NotNull(objectType, nameof(objectType));

            if (!DictionaryConverter.CanCreateType(objectType))
            {
                throw Error.Argument(
                          "objectType",
                          "The type '{0}' must be a class and have a parameterless default constructor in order to deserialize properly.",
                          objectType.FullName);
            }

            return(DictionaryConverter.SafeCreateAndPopulate(objectType, values));
        }