public StringKeyIDictionaryJsonConverter(JsonToken startToken, string keyPrefix, string separator, string dateTimeFormat) { if ((!startToken.Equals(JsonToken.StartArray)) && (!startToken.Equals(JsonToken.StartObject))) { throw new JsonReaderException(String.Format("converter does not support converting from {0}", startToken)); } if ((typeof(T) == typeof(DateTime)) && (String.IsNullOrEmpty(dateTimeFormat))) { throw new JsonReaderException("converter lack parameter", new ArgumentNullException("dateTimeFormat", "when specify T as DateTime, parameter cannot be null or empty")); } _startToken = startToken; _token = Enum.GetName(typeof(JsonToken), _startToken).Replace("Start", ""); _dateTimeFormat = dateTimeFormat; if (String.IsNullOrEmpty(keyPrefix)) { keyPrefix = ""; } _keyPrefix = keyPrefix; if (startToken.Equals(JsonToken.StartArray)) { if (String.IsNullOrEmpty(separator)) { throw new JsonReaderException("converter lack parameter", new ArgumentNullException("separator", "when specify startToken as StartArray, parameter cannot be null or empty")); } _separator = separator; } }
public ArrayJsonConverter(JsonToken startToken, string itemName) { if (startToken.Equals(JsonToken.StartArray) || startToken.Equals(JsonToken.StartObject)) { _startToken = startToken; _token = Enum.GetName(typeof(JsonToken), _startToken).Replace("Start", ""); if (_token.Equals("Object") && String.IsNullOrEmpty(itemName)) { throw new JsonReaderException("converter lack parameter", new ArgumentNullException("itemName", "when specify startToken as StartObject, parameter cannot be null or empty")); } _itemName = itemName; } else { throw new JsonReaderException(String.Format("converter does not support converting from {0}", startToken)); } }