NServiceBus.XContainerJsonConverter.ReadJson C# (CSharp) Method

ReadJson() public method

public ReadJson ( JsonReader reader, Type objectType, object existingValue, Newtonsoft serializer ) : object
reader Newtonsoft.Json.JsonReader
objectType System.Type
existingValue object
serializer Newtonsoft
return object
        public override object ReadJson(
            JsonReader reader, Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer)
        {
            if (reader.TokenType == JsonToken.Null)
            {
                return null;
            }

            if (reader.TokenType != JsonToken.String)
            {
                throw new Exception(
                    string.Format(
                        CultureInfo.InvariantCulture,
                        "Unexpected token or value when parsing XContainer. Token: {0}, Value: {1}",
                        reader.TokenType,
                        reader.Value));
            }

            var value = (string) reader.Value;
            if (objectType == typeof(XDocument))
            {
                try
                {
                    return XDocument.Load(new StringReader(value));
                }
                catch (Exception ex)
                {
                    throw new Exception(
                        string.Format(
                            CultureInfo.InvariantCulture, "Error parsing XContainer string: {0}", reader.Value),
                        ex);
                }
            }

            return XElement.Load(new StringReader(value));
        }
XContainerJsonConverter