public static ConfigInfo ReadConfig(string configFilePath)
{
var defaultConfigJsonString = ReadDefaultConfigFileFromAssembly();
if (configFilePath == null || !File.Exists(configFilePath))
return JsonConvert.DeserializeObject<ConfigInfo>(defaultConfigJsonString);
var defaultConfigJObject = JObject.Parse(defaultConfigJsonString);
var userConfigJObject = JObject.Parse(File.ReadAllText(configFilePath));
defaultConfigJObject.Merge(userConfigJObject);
return defaultConfigJObject.ToObject<ConfigInfo>();
}