-Tests
-XML documentation -Removed generic serialize methods
This commit is contained in:
@@ -1904,7 +1904,7 @@ namespace Newtonsoft.Json.Tests.Converters
|
||||
}
|
||||
|
||||
#if !NET20
|
||||
class NullableXml
|
||||
public class NullableXml
|
||||
{
|
||||
public string Name;
|
||||
public XElement notNull;
|
||||
|
||||
@@ -30,6 +30,7 @@ using System.ComponentModel;
|
||||
#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE)
|
||||
using System.Numerics;
|
||||
#endif
|
||||
using Newtonsoft.Json.Serialization;
|
||||
using Newtonsoft.Json.Tests.TestObjects;
|
||||
#if !NETFX_CORE
|
||||
using NUnit.Framework;
|
||||
@@ -1936,28 +1937,57 @@ Parameter name: arrayIndex",
|
||||
Assert.IsFalse(a.TryGetValue(null, StringComparison.Ordinal, out v));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void sdfsdf()
|
||||
public class FooJsonConverter : JsonConverter
|
||||
{
|
||||
string json = @"
|
||||
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
|
||||
{
|
||||
var token = JToken.FromObject(value, new JsonSerializer
|
||||
{
|
||||
ContractResolver = new CamelCasePropertyNamesContractResolver()
|
||||
});
|
||||
if (token.Type == JTokenType.Object)
|
||||
{
|
||||
var o = (JObject)token;
|
||||
o.AddFirst(new JProperty("foo", "bar"));
|
||||
o.WriteTo(writer);
|
||||
}
|
||||
else
|
||||
token.WriteTo(writer);
|
||||
}
|
||||
|
||||
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
|
||||
{
|
||||
throw new NotSupportedException("This custom converter only supportes serialization and not deserialization.");
|
||||
}
|
||||
|
||||
{
|
||||
""resultCount"":1,
|
||||
""results"": [
|
||||
{""kind"":""software"", ""features"":[], ""supportedDevices"":[""all""], ""isGameCenterEnabled"":false,
|
||||
""screenshotUrls"":[""http://a1483.phobos.apple.com/us/r1000/080/Purple/v4/97/93/25/9793257e-1508-631c-c867-7075fa4fd55a/mzl.vdfbnbtr.png"", ""http://a1052.phobos.apple.com/us/r1000/087/Purple/v4/8c/63/ec/8c63ecc0-4e1b-e8e5-d936-ac2ab3a5a09b/mzl.tcjeyxaz.png"", ""http://a955.phobos.apple.com/us/r1000/068/Purple/v4/b8/0f/3c/b80f3c4a-ef67-7c09-e7e0-71dd016b24eb/mzl.ytmcfche.png"", ""http://a139.phobos.apple.com/us/r1000/073/Purple/v4/85/22/78/852278c3-4c4f-1dd4-70a1-072722e233b6/mzl.lguhuzlo.png"", ""http://a1136.phobos.apple.com/us/r1000/091/Purple/v4/c7/25/52/c725526f-63d3-bb77-7cad-fce3a1725c1e/mzl.rrftrkgt.png""], ""ipadScreenshotUrls"":[], ""artworkUrl60"":""http://a1115.phobos.apple.com/us/r1000/119/Purple/v4/44/f8/a6/44f8a649-2a7f-05cb-bed1-9288f08f5e74/Icon.png"", ""artworkUrl512"":""http://a380.phobos.apple.com/us/r1000/062/Purple/v4/47/6e/ea/476eea43-10dd-17ae-e972-303e8008eac1/mzl.muprlqbf.png"", ""artistViewUrl"":""https://itunes.apple.com/us/artist/yellowpages.com-llc/id281970042?uo=4"", ""artistId"":281970042, ""artistName"":""YELLOWPAGES.COM LLC"", ""price"":0.00, ""version"":""3.9"",
|
||||
""description"":""Find what\u2019s around you in a flash! Whether you\u2019re looking for a great place to eat or to find cheap gas on the way, the YP app connects you with local businesses, deals and events to help you get things done.\n\n\u2022 Search over 18 million businesses by typing, speaking, or browsing popular categories including movie theaters, hotels, mechanics, dentists, and more.\n\u2022 Add personalized shortcuts for instant access to nearby businesses, deals, gas prices and events.\n\u2022 Craving a specific food? We'll look through over 300,000 menus to figure out who's got what you want.\n\u2022 Find the \u201cbest\u201d gas prices near you with our unique visual gas price search.\n\u2022 Save with thousands of local coupons and deals from businesses near you.*\n\u2022 Get important information before heading out including:\n - Ratings and reviews\n - Photos \u2013 plus upload photos to your favorite businesses!\n - Restaurant and service menus\n - Movie showtimes\n - Hours of operation\n - Phone numbers\n - Maps and directions \n\nWhatever you need\u2026 Wherever you are\u2026 the YP app covers you locally. What are you waiting for? Try it now! \n\n\n\n* Some restrictions may apply. Please call first to confirm the business will accept this coupon. Not all businesses accept mobile coupons."", ""currency"":""USD"", ""genres"":[""Travel"", ""Navigation""], ""genreIds"":[""6003"", ""6010""], ""releaseDate"":""2008-07-11T07:00:00Z"", ""sellerName"":""Yellowpages.com"", ""bundleId"":""com.yellowpages.ypmobile"", ""trackId"":284806204, ""trackName"":""YP Local Search & Gas Prices"", ""primaryGenreName"":""Travel"", ""primaryGenreId"":6003,
|
||||
""releaseNotes"":""\u2022 Support for full screen display on iPhone 5\n\u2022 Location Aware Autosuggest \u2013 based on your location, we'll suggest nearby businesses as you type to make searching faster\n\u2022 Crash and bug fixes to make the app more stable"", ""formattedPrice"":""Free"", ""wrapperType"":""software"", ""trackCensoredName"":""YP Local Search & Gas Prices"", ""languageCodesISO2A"":[""EN""], ""fileSizeBytes"":""8728406"", ""sellerUrl"":""http://www.yellowpages.com/products/ypmobile"", ""contentAdvisoryRating"":""4+"", ""averageUserRatingForCurrentVersion"":4.5, ""userRatingCountForCurrentVersion"":168, ""artworkUrl100"":""http://a380.phobos.apple.com/us/r1000/062/Purple/v4/47/6e/ea/476eea43-10dd-17ae-e972-303e8008eac1/mzl.muprlqbf.png"", ""trackViewUrl"":""https://itunes.apple.com/us/app/yp-local-search-gas-prices/id284806204?mt=8&uo=4"", ""trackContentRating"":""4+"", ""averageUserRating"":3.0, ""userRatingCount"":55022}]
|
||||
}
|
||||
public override bool CanRead
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
|
||||
";
|
||||
public override bool CanConvert(Type objectType)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
JObject o = JObject.Parse(json);
|
||||
[Test]
|
||||
public void FromObjectInsideConverterWithCustomSerializer()
|
||||
{
|
||||
var p = new Person
|
||||
{
|
||||
Name = "Daniel Wertheim",
|
||||
};
|
||||
|
||||
string s = (string)o["results"][0]["description"];
|
||||
var settings = new JsonSerializerSettings
|
||||
{
|
||||
Converters = new List<JsonConverter> { new FooJsonConverter() },
|
||||
ContractResolver = new CamelCasePropertyNamesContractResolver()
|
||||
};
|
||||
|
||||
Assert.AreEqual("Find what’s around you in a flash! Whether you’re looking for a great place to eat or to find cheap gas on the way, the YP app connects you with local businesses, deals and events to help you get things done.\n\n• Search over 18 million businesses by typing, speaking, or browsing popular categories including movie theaters, hotels, mechanics, dentists, and more.\n• Add personalized shortcuts for instant access to nearby businesses, deals, gas prices and events.\n• Craving a specific food? We'll look through over 300,000 menus to figure out who's got what you want.\n• Find the “best” gas prices near you with our unique visual gas price search.\n• Save with thousands of local coupons and deals from businesses near you.*\n• Get important information before heading out including:\n - Ratings and reviews\n - Photos – plus upload photos to your favorite businesses!\n - Restaurant and service menus\n - Movie showtimes\n - Hours of operation\n - Phone numbers\n - Maps and directions \n\nWhatever you need… Wherever you are… the YP app covers you locally. What are you waiting for? Try it now! \n\n\n\n* Some restrictions may apply. Please call first to confirm the business will accept this coupon. Not all businesses accept mobile coupons.", s);
|
||||
var json = JsonConvert.SerializeObject(p, settings);
|
||||
|
||||
Assert.AreEqual(@"{""foo"":""bar"",""name"":""Daniel Wertheim"",""birthDate"":""0001-01-01T00:00:00"",""lastModified"":""0001-01-01T00:00:00""}", json);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -575,9 +575,52 @@ namespace Newtonsoft.Json.Tests.Linq
|
||||
public void GetTypeCode()
|
||||
{
|
||||
IConvertible v = new JValue(new Guid("0B5D4F85-E94C-4143-94C8-35F2AAEBB100"));
|
||||
|
||||
Assert.AreEqual(TypeCode.Object, v.GetTypeCode());
|
||||
|
||||
v = new JValue(new Uri("http://www.google.com"));
|
||||
Assert.AreEqual(TypeCode.Object, v.GetTypeCode());
|
||||
|
||||
#if !(NET20 || NET35 || SILVERLIGHT)
|
||||
v = new JValue(new BigInteger(3));
|
||||
Assert.AreEqual(TypeCode.Object, v.GetTypeCode());
|
||||
#endif
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ToType()
|
||||
{
|
||||
IConvertible v = new JValue(9.0m);
|
||||
|
||||
int i = (int)v.ToType(typeof (int), CultureInfo.InvariantCulture);
|
||||
Assert.AreEqual(9, i);
|
||||
|
||||
BigInteger bi = (BigInteger)v.ToType(typeof(BigInteger), CultureInfo.InvariantCulture);
|
||||
Assert.AreEqual(new BigInteger(9), bi);
|
||||
}
|
||||
#endif
|
||||
|
||||
[Test]
|
||||
public void ToStringFormat()
|
||||
{
|
||||
JValue v = new JValue(new DateTime(2013, 02, 01, 01, 02, 03, 04));
|
||||
|
||||
Assert.AreEqual("2013", v.ToString("yyyy"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ToStringNewTypes()
|
||||
{
|
||||
JArray a = new JArray(
|
||||
new JValue(new DateTimeOffset(2013, 02, 01, 01, 02, 03, 04, TimeSpan.FromHours(1))),
|
||||
new JValue(new BigInteger(5)),
|
||||
new JValue(1.1f)
|
||||
);
|
||||
|
||||
Assert.AreEqual(@"[
|
||||
""2013-02-01T01:02:03.004+01:00"",
|
||||
5,
|
||||
1.1
|
||||
]", a.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -507,9 +507,6 @@
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Schema\Specs\optional\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Newtonsoft.Json\Newtonsoft.Json.Net40.csproj">
|
||||
<Project>{a9ae40ff-1a21-414a-9fe7-3be13644cc6d}</Project>
|
||||
|
||||
@@ -318,8 +318,10 @@ namespace Newtonsoft.Json.Tests.Serialization
|
||||
// Verify contract is properly finding our callback
|
||||
var resolver = new DefaultContractResolver().ResolveContract(typeof(FooEvent));
|
||||
|
||||
#pragma warning disable 612,618
|
||||
Debug.Assert(resolver.OnError != null);
|
||||
Debug.Assert(resolver.OnError == typeof(FooEvent).GetMethod("OnError", BindingFlags.Instance | BindingFlags.NonPublic));
|
||||
#pragma warning restore 612,618
|
||||
|
||||
var serializer = JsonSerializer.Create(new JsonSerializerSettings
|
||||
{
|
||||
|
||||
@@ -79,7 +79,7 @@ namespace Newtonsoft.Json.Tests.Serialization
|
||||
TypeNameHandling = TypeNameHandling.Auto
|
||||
};
|
||||
var sw = new StringWriter();
|
||||
serializer.Serialize<Person>(new JsonTextWriter(sw) { Formatting = Formatting.Indented }, new WagePerson());
|
||||
serializer.Serialize(new JsonTextWriter(sw) { Formatting = Formatting.Indented }, new WagePerson(), typeof(Person));
|
||||
var result = sw.ToString();
|
||||
|
||||
Assert.AreEqual(@"{
|
||||
@@ -102,7 +102,7 @@ namespace Newtonsoft.Json.Tests.Serialization
|
||||
[Test]
|
||||
public void SerializeRootTypeNameAutoWithJsonConvert()
|
||||
{
|
||||
string json = JsonConvert.SerializeObject<object>(new WagePerson(), Formatting.Indented, new JsonSerializerSettings
|
||||
string json = JsonConvert.SerializeObject(new WagePerson(), typeof(object), Formatting.Indented, new JsonSerializerSettings
|
||||
{
|
||||
TypeNameHandling = TypeNameHandling.Auto
|
||||
});
|
||||
|
||||
@@ -463,6 +463,10 @@ namespace Newtonsoft.Json.Bson
|
||||
}
|
||||
|
||||
#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE)
|
||||
/// <summary>
|
||||
/// Writes a <see cref="BigInteger"/> value.
|
||||
/// </summary>
|
||||
/// <param name="value">The <see cref="BigInteger"/> value to write.</param>
|
||||
public override void WriteValue(BigInteger value)
|
||||
{
|
||||
base.WriteValue(value);
|
||||
|
||||
@@ -933,16 +933,6 @@ namespace Newtonsoft.Json
|
||||
return SerializeObject(value, Formatting.None, settings);
|
||||
}
|
||||
|
||||
public static string SerializeObject<T>(T value, JsonSerializerSettings settings)
|
||||
{
|
||||
return SerializeObject<T>(value, Formatting.None, settings);
|
||||
}
|
||||
|
||||
public static string SerializeObject<T>(T value, Formatting formatting, JsonSerializerSettings settings)
|
||||
{
|
||||
return SerializeObjectInternal(value, formatting, settings, typeof (T));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Serializes the specified object to a JSON string using a collection of <see cref="JsonConverter"/>.
|
||||
/// </summary>
|
||||
@@ -955,10 +945,25 @@ namespace Newtonsoft.Json
|
||||
/// </returns>
|
||||
public static string SerializeObject(object value, Formatting formatting, JsonSerializerSettings settings)
|
||||
{
|
||||
return SerializeObjectInternal(value, formatting, settings, null);
|
||||
return SerializeObject(value, null, formatting, settings);
|
||||
}
|
||||
|
||||
public static string SerializeObjectInternal(object value, Formatting formatting, JsonSerializerSettings settings, Type rootType)
|
||||
/// <summary>
|
||||
/// Serializes the specified object to a JSON string using a collection of <see cref="JsonConverter"/>.
|
||||
/// </summary>
|
||||
/// <param name="value">The object to serialize.</param>
|
||||
/// <param name="formatting">Indicates how the output is formatted.</param>
|
||||
/// <param name="settings">The <see cref="JsonSerializerSettings"/> used to serialize the object.
|
||||
/// If this is null, default serialization settings will be is used.</param>
|
||||
/// <param name="type">
|
||||
/// The type of the value being serialized.
|
||||
/// This parameter is used when <see cref="TypeNameHandling"/> is Auto to write out the type name if the type of the value does not match.
|
||||
/// Specifing the type is optional.
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// A JSON string representation of the object.
|
||||
/// </returns>
|
||||
public static string SerializeObject(object value, Type type, Formatting formatting, JsonSerializerSettings settings)
|
||||
{
|
||||
JsonSerializer jsonSerializer = JsonSerializer.Create(settings);
|
||||
|
||||
@@ -968,7 +973,7 @@ namespace Newtonsoft.Json
|
||||
{
|
||||
jsonWriter.Formatting = formatting;
|
||||
|
||||
jsonSerializer.Serialize(jsonWriter, value, rootType);
|
||||
jsonSerializer.Serialize(jsonWriter, value, type);
|
||||
}
|
||||
|
||||
return sw.ToString();
|
||||
@@ -1080,6 +1085,21 @@ namespace Newtonsoft.Json
|
||||
return DeserializeObject<T>(value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Deserializes the JSON to the given anonymous type.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">
|
||||
/// The anonymous type to deserialize to. This can't be specified
|
||||
/// traditionally and must be infered from the anonymous type passed
|
||||
/// as a parameter.
|
||||
/// </typeparam>
|
||||
/// <param name="value">The JSON to deserialize.</param>
|
||||
/// <param name="anonymousTypeObject">The anonymous type object.</param>
|
||||
/// <param name="settings">
|
||||
/// The <see cref="JsonSerializerSettings"/> used to deserialize the object.
|
||||
/// If this is null, default serialization settings will be is used.
|
||||
/// </param>
|
||||
/// <returns>The deserialized anonymous type from the JSON string.</returns>
|
||||
public static T DeserializeAnonymousType<T>(string value, T anonymousTypeObject, JsonSerializerSettings settings)
|
||||
{
|
||||
return DeserializeObject<T>(value, settings);
|
||||
|
||||
@@ -632,14 +632,36 @@ namespace Newtonsoft.Json
|
||||
Serialize(new JsonTextWriter(textWriter), value);
|
||||
}
|
||||
|
||||
public void Serialize(JsonWriter jsonWriter, object value, Type rootType)
|
||||
/// <summary>
|
||||
/// Serializes the specified <see cref="Object"/> and writes the Json structure
|
||||
/// to a <c>Stream</c> using the specified <see cref="TextWriter"/>.
|
||||
/// </summary>
|
||||
/// <param name="jsonWriter">The <see cref="JsonWriter"/> used to write the Json structure.</param>
|
||||
/// <param name="value">The <see cref="Object"/> to serialize.</param>
|
||||
/// <param name="objectType">
|
||||
/// The type of the value being serialized.
|
||||
/// This parameter is used when <see cref="TypeNameHandling"/> is Auto to write out the type name if the type of the value does not match.
|
||||
/// Specifing the type is optional.
|
||||
/// </param>
|
||||
public void Serialize(JsonWriter jsonWriter, object value, Type objectType)
|
||||
{
|
||||
SerializeInternal(jsonWriter, value, rootType);
|
||||
SerializeInternal(jsonWriter, value, objectType);
|
||||
}
|
||||
|
||||
public void Serialize(TextWriter textWriter, object value, Type rootType)
|
||||
/// <summary>
|
||||
/// Serializes the specified <see cref="Object"/> and writes the Json structure
|
||||
/// to a <c>Stream</c> using the specified <see cref="TextWriter"/>.
|
||||
/// </summary>
|
||||
/// <param name="textWriter">The <see cref="TextWriter"/> used to write the Json structure.</param>
|
||||
/// <param name="value">The <see cref="Object"/> to serialize.</param>
|
||||
/// <param name="objectType">
|
||||
/// The type of the value being serialized.
|
||||
/// This parameter is used when <see cref="TypeNameHandling"/> is Auto to write out the type name if the type of the value does not match.
|
||||
/// Specifing the type is optional.
|
||||
/// </param>
|
||||
public void Serialize(TextWriter textWriter, object value, Type objectType)
|
||||
{
|
||||
Serialize(new JsonTextWriter(textWriter), value, rootType);
|
||||
Serialize(new JsonTextWriter(textWriter), value, objectType);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -653,12 +675,7 @@ namespace Newtonsoft.Json
|
||||
SerializeInternal(jsonWriter, value, null);
|
||||
}
|
||||
|
||||
public void Serialize<T>(JsonWriter jsonWriter, object value)
|
||||
{
|
||||
SerializeInternal(jsonWriter, value, typeof(T));
|
||||
}
|
||||
|
||||
internal virtual void SerializeInternal(JsonWriter jsonWriter, object value, Type rootType)
|
||||
internal virtual void SerializeInternal(JsonWriter jsonWriter, object value, Type objectType)
|
||||
{
|
||||
ValidationUtils.ArgumentNotNull(jsonWriter, "jsonWriter");
|
||||
|
||||
@@ -713,7 +730,7 @@ namespace Newtonsoft.Json
|
||||
}
|
||||
|
||||
JsonSerializerInternalWriter serializerWriter = new JsonSerializerInternalWriter(this);
|
||||
serializerWriter.Serialize(jsonWriter, value, rootType);
|
||||
serializerWriter.Serialize(jsonWriter, value, objectType);
|
||||
|
||||
// reset writer back to previous options
|
||||
if (previousFormatting != null)
|
||||
|
||||
@@ -214,6 +214,11 @@ namespace Newtonsoft.Json
|
||||
_writer.Write(':');
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Writes the property name of a name/value pair on a JSON object.
|
||||
/// </summary>
|
||||
/// <param name="name">The name of the property.</param>
|
||||
/// <param name="escape">A flag to indicate whether the text should be escaped when it is written as a JSON property name.</param>
|
||||
public override void WritePropertyName(string name, bool escape)
|
||||
{
|
||||
InternalWritePropertyName(name);
|
||||
|
||||
@@ -406,7 +406,7 @@ namespace Newtonsoft.Json
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Writes the property name of a name/value pair on a Json object.
|
||||
/// Writes the property name of a name/value pair on a JSON object.
|
||||
/// </summary>
|
||||
/// <param name="name">The name of the property.</param>
|
||||
public virtual void WritePropertyName(string name)
|
||||
@@ -414,6 +414,11 @@ namespace Newtonsoft.Json
|
||||
InternalWritePropertyName(name);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Writes the property name of a name/value pair on a JSON object.
|
||||
/// </summary>
|
||||
/// <param name="name">The name of the property.</param>
|
||||
/// <param name="escape">A flag to indicate whether the text should be escaped when it is written as a JSON property name.</param>
|
||||
public virtual void WritePropertyName(string name, bool escape)
|
||||
{
|
||||
WritePropertyName(name);
|
||||
|
||||
@@ -931,7 +931,7 @@ namespace Newtonsoft.Json.Linq
|
||||
#endif
|
||||
#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE)
|
||||
if (_value is BigInteger)
|
||||
return TypeCode.Int64;
|
||||
return TypeCode.Object;
|
||||
#endif
|
||||
|
||||
return System.Type.GetTypeCode(_value.GetType());
|
||||
|
||||
@@ -51,8 +51,19 @@ namespace Newtonsoft.Json.Serialization
|
||||
Linq
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles <see cref="JsonSerializer"/> serialization callback events.
|
||||
/// </summary>
|
||||
/// <param name="o">The object that raised the callback event.</param>
|
||||
/// <param name="context">The streaming context.</param>
|
||||
public delegate void SerializationCallback(object o, StreamingContext context);
|
||||
|
||||
/// <summary>
|
||||
/// Handles <see cref="JsonSerializer"/> serialization error callback events.
|
||||
/// </summary>
|
||||
/// <param name="o">The object that raised the callback event.</param>
|
||||
/// <param name="context">The streaming context.</param>
|
||||
/// <param name="errorContext">The error context.</param>
|
||||
public delegate void SerializationErrorCallback(object o, StreamingContext context, ErrorContext errorContext);
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -56,13 +56,13 @@ namespace Newtonsoft.Json.Serialization
|
||||
{
|
||||
}
|
||||
|
||||
public void Serialize(JsonWriter jsonWriter, object value, Type rootType)
|
||||
public void Serialize(JsonWriter jsonWriter, object value, Type objectType)
|
||||
{
|
||||
if (jsonWriter == null)
|
||||
throw new ArgumentNullException("jsonWriter");
|
||||
|
||||
if (rootType != null)
|
||||
_rootContract = Serializer.ContractResolver.ResolveContract(rootType);
|
||||
if (objectType != null)
|
||||
_rootContract = Serializer.ContractResolver.ResolveContract(objectType);
|
||||
|
||||
SerializeValue(jsonWriter, value, GetContractSafe(value), null, null, null);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user