public void ParseFromConfig(JObject json, string configName) { Ensure.NotNullOrEmpty(configName, "configName"); if (_jsonPath == null) { return; } Origin = OptionOrigin.Config; OriginName = configName; OriginOptionName = string.Join(".", _jsonPath); var token = OptionContainerHelpers.GetTokenByJsonPath(json, _jsonPath); if (token == null) { return; } if (token.Type != JTokenType.Array) { throw new OptionException( string.Format("Property '{0}' (value: {1}) in JSON config at '{2}' is not array.", OriginOptionName, token, configName), OriginOptionName); } var values = new List <T>(); foreach (var item in (JArray)token) { try { var value = OptionContainerHelpers.ConvertFromJToken <T>(item); values.Add(value); } catch (Exception exc) { throw new OptionException( string.Format("Could not convert part of JSON array {0} at '{1}' to type {2}. JToken: {3}.", OriginOptionName, configName, typeof(T).Name, token), OriginOptionName, exc); } } Value = values.ToArray(); }
public void ParseFromConfig(JObject json, string configName) { Ensure.NotNullOrEmpty(configName, "configName"); if (_jsonPath == null) { return; } Origin = OptionOrigin.Config; OriginName = configName; OriginOptionName = string.Join(".", _jsonPath); var token = OptionContainerHelpers.GetTokenByJsonPath(json, _jsonPath); if (token == null) { return; } try { Value = OptionContainerHelpers.ConvertFromJToken <T>(token); _isSet = true; } catch (Exception exc) { throw new OptionException( string.Format("Could not convert JToken {0} at '{1}' to type {2}. JToken: {3}.", OriginOptionName, configName, typeof(T).Name, token), OriginOptionName, exc); } }