-Changed MemberConverter to be obsolete
This commit is contained in:
@@ -10109,6 +10109,58 @@ This is just junk, though.";
|
|||||||
|
|
||||||
Assert.AreEqual(propertyValue, testObject.GetPropertyValue(), "MyProperty should be populated");
|
Assert.AreEqual(propertyValue, testObject.GetPropertyValue(), "MyProperty should be populated");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void JsonPropertyConverter()
|
||||||
|
{
|
||||||
|
DateTime dt = new DateTime(2000, 12, 20, 0, 0, 0, DateTimeKind.Utc);
|
||||||
|
|
||||||
|
JsonSerializerSettings settings = new JsonSerializerSettings
|
||||||
|
{
|
||||||
|
ContractResolver = new JsonPropertyConverterContractResolver(),
|
||||||
|
Formatting = Formatting.Indented
|
||||||
|
};
|
||||||
|
|
||||||
|
JsonPropertyConverterTestClass c1 = new JsonPropertyConverterTestClass
|
||||||
|
{
|
||||||
|
NormalDate = dt,
|
||||||
|
JavaScriptDate = dt
|
||||||
|
};
|
||||||
|
|
||||||
|
string json = JsonConvert.SerializeObject(c1, settings);
|
||||||
|
|
||||||
|
StringAssert.AreEqual(@"{
|
||||||
|
""NormalDate"": ""2000-12-20T00:00:00Z"",
|
||||||
|
""JavaScriptDate"": new Date(
|
||||||
|
977270400000
|
||||||
|
)
|
||||||
|
}", json);
|
||||||
|
|
||||||
|
JsonPropertyConverterTestClass c2 = JsonConvert.DeserializeObject<JsonPropertyConverterTestClass>(json, settings);
|
||||||
|
|
||||||
|
Assert.AreEqual(dt, c2.NormalDate);
|
||||||
|
Assert.AreEqual(dt, c2.JavaScriptDate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class JsonPropertyConverterTestClass
|
||||||
|
{
|
||||||
|
public DateTime NormalDate { get; set; }
|
||||||
|
public DateTime JavaScriptDate { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class JsonPropertyConverterContractResolver : DefaultContractResolver
|
||||||
|
{
|
||||||
|
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
|
||||||
|
{
|
||||||
|
JsonProperty property = base.CreateProperty(member, memberSerialization);
|
||||||
|
if (property.PropertyName == "JavaScriptDate")
|
||||||
|
{
|
||||||
|
property.Converter = new JavaScriptDateTimeConverter();
|
||||||
|
}
|
||||||
|
|
||||||
|
return property;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class BaseClassWithProtectedVirtual
|
public class BaseClassWithProtectedVirtual
|
||||||
|
|||||||
@@ -709,7 +709,6 @@ namespace Newtonsoft.Json.Serialization
|
|||||||
{
|
{
|
||||||
property.PropertyName = (property.PropertyName != parameterInfo.Name) ? property.PropertyName : matchingMemberProperty.PropertyName;
|
property.PropertyName = (property.PropertyName != parameterInfo.Name) ? property.PropertyName : matchingMemberProperty.PropertyName;
|
||||||
property.Converter = property.Converter ?? matchingMemberProperty.Converter;
|
property.Converter = property.Converter ?? matchingMemberProperty.Converter;
|
||||||
property.MemberConverter = property.MemberConverter ?? matchingMemberProperty.MemberConverter;
|
|
||||||
|
|
||||||
if (!property._hasExplicitDefaultValue && matchingMemberProperty._hasExplicitDefaultValue)
|
if (!property._hasExplicitDefaultValue && matchingMemberProperty._hasExplicitDefaultValue)
|
||||||
{
|
{
|
||||||
@@ -1560,7 +1559,6 @@ namespace Newtonsoft.Json.Serialization
|
|||||||
// resolve converter for property
|
// resolve converter for property
|
||||||
// the class type might have a converter but the property converter takes precedence
|
// the class type might have a converter but the property converter takes precedence
|
||||||
property.Converter = JsonTypeReflector.GetJsonConverter(attributeProvider);
|
property.Converter = JsonTypeReflector.GetJsonConverter(attributeProvider);
|
||||||
property.MemberConverter = JsonTypeReflector.GetJsonConverter(attributeProvider);
|
|
||||||
|
|
||||||
DefaultValueAttribute defaultValueAttribute = JsonTypeReflector.GetAttribute<DefaultValueAttribute>(attributeProvider);
|
DefaultValueAttribute defaultValueAttribute = JsonTypeReflector.GetAttribute<DefaultValueAttribute>(attributeProvider);
|
||||||
if (defaultValueAttribute != null)
|
if (defaultValueAttribute != null)
|
||||||
|
|||||||
@@ -122,7 +122,12 @@ namespace Newtonsoft.Json.Serialization
|
|||||||
/// Gets or sets the member converter.
|
/// Gets or sets the member converter.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The member converter.</value>
|
/// <value>The member converter.</value>
|
||||||
public JsonConverter MemberConverter { get; set; }
|
[Obsolete("MemberConverter is obsolete. Use Converter instead.")]
|
||||||
|
public JsonConverter MemberConverter
|
||||||
|
{
|
||||||
|
get { return Converter; }
|
||||||
|
set { Converter = value; }
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets a value indicating whether this <see cref="JsonProperty"/> is ignored.
|
/// Gets or sets a value indicating whether this <see cref="JsonProperty"/> is ignored.
|
||||||
|
|||||||
@@ -1111,7 +1111,7 @@ namespace Newtonsoft.Json.Serialization
|
|||||||
|
|
||||||
if (propertyContract != property.PropertyContract)
|
if (propertyContract != property.PropertyContract)
|
||||||
{
|
{
|
||||||
propertyConverter = GetConverter(propertyContract, property.MemberConverter, containerContract, containerProperty);
|
propertyConverter = GetConverter(propertyContract, property.Converter, containerContract, containerProperty);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1823,7 +1823,7 @@ namespace Newtonsoft.Json.Serialization
|
|||||||
property.PropertyContract = GetContractSafe(property.PropertyType);
|
property.PropertyContract = GetContractSafe(property.PropertyType);
|
||||||
}
|
}
|
||||||
|
|
||||||
JsonConverter propertyConverter = GetConverter(property.PropertyContract, property.MemberConverter, null, null);
|
JsonConverter propertyConverter = GetConverter(property.PropertyContract, property.Converter, null, null);
|
||||||
|
|
||||||
if (!SetPropertyValue(property, propertyConverter, null, member, reader, newObject))
|
if (!SetPropertyValue(property, propertyConverter, null, member, reader, newObject))
|
||||||
{
|
{
|
||||||
@@ -2160,7 +2160,7 @@ namespace Newtonsoft.Json.Serialization
|
|||||||
property.PropertyContract = GetContractSafe(property.PropertyType);
|
property.PropertyContract = GetContractSafe(property.PropertyType);
|
||||||
}
|
}
|
||||||
|
|
||||||
JsonConverter propertyConverter = GetConverter(property.PropertyContract, property.MemberConverter, contract, containerProperty);
|
JsonConverter propertyConverter = GetConverter(property.PropertyContract, property.Converter, contract, containerProperty);
|
||||||
|
|
||||||
if (!reader.ReadForType(property.PropertyContract, propertyConverter != null))
|
if (!reader.ReadForType(property.PropertyContract, propertyConverter != null))
|
||||||
{
|
{
|
||||||
@@ -2340,7 +2340,7 @@ namespace Newtonsoft.Json.Serialization
|
|||||||
property.PropertyContract = GetContractSafe(property.PropertyType);
|
property.PropertyContract = GetContractSafe(property.PropertyType);
|
||||||
}
|
}
|
||||||
|
|
||||||
JsonConverter propertyConverter = GetConverter(property.PropertyContract, property.MemberConverter, contract, member);
|
JsonConverter propertyConverter = GetConverter(property.PropertyContract, property.Converter, contract, member);
|
||||||
|
|
||||||
if (!reader.ReadForType(property.PropertyContract, propertyConverter != null))
|
if (!reader.ReadForType(property.PropertyContract, propertyConverter != null))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user