-Added TypeNameAssemblyFormatHandling
-Added TypeNameAssemblyFormatHandling properties to JsonSerializer and JsonSerializerSettings -Changed TypeNameAssemblyFormat properties on JsonSerializer and JsonSerializerSettings to obsolete
This commit is contained in:
@@ -121,11 +121,13 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
string json = JsonConvert.SerializeObject(o, Formatting.Indented, new JsonSerializerSettings
|
string json = JsonConvert.SerializeObject(o, Formatting.Indented, new JsonSerializerSettings
|
||||||
{
|
{
|
||||||
TypeNameHandling = TypeNameHandling.All,
|
TypeNameHandling = TypeNameHandling.All,
|
||||||
|
#pragma warning disable 618
|
||||||
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
|
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
|
||||||
|
#pragma warning restore 618
|
||||||
});
|
});
|
||||||
|
|
||||||
string dynamicChildObjectTypeName = ReflectionUtils.GetTypeName(typeof(DynamicChildObject), FormatterAssemblyStyle.Full, null);
|
string dynamicChildObjectTypeName = ReflectionUtils.GetTypeName(typeof(DynamicChildObject), TypeNameAssemblyFormatHandling.Full, null);
|
||||||
string expandoObjectTypeName = ReflectionUtils.GetTypeName(typeof(ExpandoObject), FormatterAssemblyStyle.Full, null);
|
string expandoObjectTypeName = ReflectionUtils.GetTypeName(typeof(ExpandoObject), TypeNameAssemblyFormatHandling.Full, null);
|
||||||
|
|
||||||
StringAssert.AreEqual(@"{
|
StringAssert.AreEqual(@"{
|
||||||
""$type"": """ + expandoObjectTypeName + @""",
|
""$type"": """ + expandoObjectTypeName + @""",
|
||||||
@@ -141,7 +143,9 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
dynamic n = JsonConvert.DeserializeObject(json, null, new JsonSerializerSettings
|
dynamic n = JsonConvert.DeserializeObject(json, null, new JsonSerializerSettings
|
||||||
{
|
{
|
||||||
TypeNameHandling = TypeNameHandling.All,
|
TypeNameHandling = TypeNameHandling.All,
|
||||||
|
#pragma warning disable 618
|
||||||
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
|
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
|
||||||
|
#pragma warning restore 618
|
||||||
});
|
});
|
||||||
|
|
||||||
CustomAssert.IsInstanceOfType(typeof(ExpandoObject), n);
|
CustomAssert.IsInstanceOfType(typeof(ExpandoObject), n);
|
||||||
|
|||||||
@@ -1259,10 +1259,22 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
Assert.AreEqual(traceWriter, serializer.TraceWriter);
|
Assert.AreEqual(traceWriter, serializer.TraceWriter);
|
||||||
|
|
||||||
#if !(PORTABLE || PORTABLE40 || NETFX_CORE || NET20 || DNXCORE50)
|
#if !(PORTABLE || PORTABLE40 || NETFX_CORE || NET20 || DNXCORE50)
|
||||||
|
#pragma warning disable 618
|
||||||
serializer.TypeNameAssemblyFormat = FormatterAssemblyStyle.Full;
|
serializer.TypeNameAssemblyFormat = FormatterAssemblyStyle.Full;
|
||||||
Assert.AreEqual(FormatterAssemblyStyle.Full, serializer.TypeNameAssemblyFormat);
|
Assert.AreEqual(FormatterAssemblyStyle.Full, serializer.TypeNameAssemblyFormat);
|
||||||
|
#pragma warning restore 618
|
||||||
|
|
||||||
|
Assert.AreEqual(TypeNameAssemblyFormatHandling.Full, serializer.TypeNameAssemblyFormatHandling);
|
||||||
|
|
||||||
|
serializer.TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple;
|
||||||
|
#pragma warning disable 618
|
||||||
|
Assert.AreEqual(FormatterAssemblyStyle.Simple, serializer.TypeNameAssemblyFormat);
|
||||||
|
#pragma warning restore 618
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
serializer.TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Full;
|
||||||
|
Assert.AreEqual(TypeNameAssemblyFormatHandling.Full, serializer.TypeNameAssemblyFormatHandling);
|
||||||
|
|
||||||
serializer.TypeNameHandling = TypeNameHandling.All;
|
serializer.TypeNameHandling = TypeNameHandling.All;
|
||||||
Assert.AreEqual(TypeNameHandling.All, serializer.TypeNameHandling);
|
Assert.AreEqual(TypeNameHandling.All, serializer.TypeNameHandling);
|
||||||
}
|
}
|
||||||
@@ -1360,10 +1372,22 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
Assert.AreEqual(traceWriter, settings.TraceWriter);
|
Assert.AreEqual(traceWriter, settings.TraceWriter);
|
||||||
|
|
||||||
#if !(PORTABLE || PORTABLE40 || NETFX_CORE || NET20 || DNXCORE50)
|
#if !(PORTABLE || PORTABLE40 || NETFX_CORE || NET20 || DNXCORE50)
|
||||||
|
#pragma warning disable 618
|
||||||
settings.TypeNameAssemblyFormat = FormatterAssemblyStyle.Full;
|
settings.TypeNameAssemblyFormat = FormatterAssemblyStyle.Full;
|
||||||
Assert.AreEqual(FormatterAssemblyStyle.Full, settings.TypeNameAssemblyFormat);
|
Assert.AreEqual(FormatterAssemblyStyle.Full, settings.TypeNameAssemblyFormat);
|
||||||
|
#pragma warning restore 618
|
||||||
|
|
||||||
|
Assert.AreEqual(TypeNameAssemblyFormatHandling.Full, settings.TypeNameAssemblyFormatHandling);
|
||||||
|
|
||||||
|
settings.TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple;
|
||||||
|
#pragma warning disable 618
|
||||||
|
Assert.AreEqual(FormatterAssemblyStyle.Simple, settings.TypeNameAssemblyFormat);
|
||||||
|
#pragma warning restore 618
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
settings.TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Full;
|
||||||
|
Assert.AreEqual(TypeNameAssemblyFormatHandling.Full, settings.TypeNameAssemblyFormatHandling);
|
||||||
|
|
||||||
settings.TypeNameHandling = TypeNameHandling.All;
|
settings.TypeNameHandling = TypeNameHandling.All;
|
||||||
Assert.AreEqual(TypeNameHandling.All, settings.TypeNameHandling);
|
Assert.AreEqual(TypeNameHandling.All, settings.TypeNameHandling);
|
||||||
}
|
}
|
||||||
@@ -1455,10 +1479,22 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
Assert.AreEqual(traceWriter, serializerProxy.TraceWriter);
|
Assert.AreEqual(traceWriter, serializerProxy.TraceWriter);
|
||||||
|
|
||||||
#if !(PORTABLE || PORTABLE40 || NETFX_CORE || NET20 || DNXCORE50)
|
#if !(PORTABLE || PORTABLE40 || NETFX_CORE || NET20 || DNXCORE50)
|
||||||
|
#pragma warning disable 618
|
||||||
serializerProxy.TypeNameAssemblyFormat = FormatterAssemblyStyle.Full;
|
serializerProxy.TypeNameAssemblyFormat = FormatterAssemblyStyle.Full;
|
||||||
Assert.AreEqual(FormatterAssemblyStyle.Full, serializerProxy.TypeNameAssemblyFormat);
|
Assert.AreEqual(FormatterAssemblyStyle.Full, serializerProxy.TypeNameAssemblyFormat);
|
||||||
|
#pragma warning restore 618
|
||||||
|
|
||||||
|
Assert.AreEqual(TypeNameAssemblyFormatHandling.Full, serializerProxy.TypeNameAssemblyFormatHandling);
|
||||||
|
|
||||||
|
serializerProxy.TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple;
|
||||||
|
#pragma warning disable 618
|
||||||
|
Assert.AreEqual(FormatterAssemblyStyle.Simple, serializerProxy.TypeNameAssemblyFormat);
|
||||||
|
#pragma warning restore 618
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
serializerProxy.TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Full;
|
||||||
|
Assert.AreEqual(TypeNameAssemblyFormatHandling.Full, serializerProxy.TypeNameAssemblyFormatHandling);
|
||||||
|
|
||||||
serializerProxy.TypeNameHandling = TypeNameHandling.All;
|
serializerProxy.TypeNameHandling = TypeNameHandling.All;
|
||||||
Assert.AreEqual(TypeNameHandling.All, serializerProxy.TypeNameHandling);
|
Assert.AreEqual(TypeNameHandling.All, serializerProxy.TypeNameHandling);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -376,7 +376,9 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
List<object> values = (List<object>)JsonConvert.DeserializeObject(json, typeof(List<object>), new JsonSerializerSettings
|
List<object> values = (List<object>)JsonConvert.DeserializeObject(json, typeof(List<object>), new JsonSerializerSettings
|
||||||
{
|
{
|
||||||
TypeNameHandling = TypeNameHandling.Objects,
|
TypeNameHandling = TypeNameHandling.Objects,
|
||||||
|
#pragma warning disable 618
|
||||||
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full,
|
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full,
|
||||||
|
#pragma warning restore 618
|
||||||
MetadataPropertyHandling = MetadataPropertyHandling.ReadAhead
|
MetadataPropertyHandling = MetadataPropertyHandling.ReadAhead
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -399,7 +401,7 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
[Test]
|
[Test]
|
||||||
public void WriteListTypeNameForProperty()
|
public void WriteListTypeNameForProperty()
|
||||||
{
|
{
|
||||||
string listRef = ReflectionUtils.GetTypeName(typeof(List<int>), FormatterAssemblyStyle.Simple, null);
|
string listRef = ReflectionUtils.GetTypeName(typeof(List<int>), TypeNameAssemblyFormatHandling.Simple, null);
|
||||||
|
|
||||||
TypeNameHandlingTests.TypeNameProperty typeNameProperty = new TypeNameHandlingTests.TypeNameProperty
|
TypeNameHandlingTests.TypeNameProperty typeNameProperty = new TypeNameHandlingTests.TypeNameProperty
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -322,7 +322,7 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
[Test]
|
[Test]
|
||||||
public void WriteTypeNameForObjects()
|
public void WriteTypeNameForObjects()
|
||||||
{
|
{
|
||||||
string employeeRef = ReflectionUtils.GetTypeName(typeof(EmployeeReference), FormatterAssemblyStyle.Simple, null);
|
string employeeRef = ReflectionUtils.GetTypeName(typeof(EmployeeReference), TypeNameAssemblyFormatHandling.Simple, null);
|
||||||
|
|
||||||
EmployeeReference employee = new EmployeeReference();
|
EmployeeReference employee = new EmployeeReference();
|
||||||
|
|
||||||
@@ -342,7 +342,7 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
[Test]
|
[Test]
|
||||||
public void DeserializeTypeName()
|
public void DeserializeTypeName()
|
||||||
{
|
{
|
||||||
string employeeRef = ReflectionUtils.GetTypeName(typeof(EmployeeReference), FormatterAssemblyStyle.Simple, null);
|
string employeeRef = ReflectionUtils.GetTypeName(typeof(EmployeeReference), TypeNameAssemblyFormatHandling.Simple, null);
|
||||||
|
|
||||||
string json = @"{
|
string json = @"{
|
||||||
""$id"": ""1"",
|
""$id"": ""1"",
|
||||||
@@ -364,7 +364,7 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
[Test]
|
[Test]
|
||||||
public void DeserializeTypeNameFromGacAssembly()
|
public void DeserializeTypeNameFromGacAssembly()
|
||||||
{
|
{
|
||||||
string cookieRef = ReflectionUtils.GetTypeName(typeof(Cookie), FormatterAssemblyStyle.Simple, null);
|
string cookieRef = ReflectionUtils.GetTypeName(typeof(Cookie), TypeNameAssemblyFormatHandling.Simple, null);
|
||||||
|
|
||||||
string json = @"{
|
string json = @"{
|
||||||
""$id"": ""1"",
|
""$id"": ""1"",
|
||||||
@@ -406,7 +406,9 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
string json = JsonConvert.SerializeObject(values, Formatting.Indented, new JsonSerializerSettings
|
string json = JsonConvert.SerializeObject(values, Formatting.Indented, new JsonSerializerSettings
|
||||||
{
|
{
|
||||||
TypeNameHandling = TypeNameHandling.Objects,
|
TypeNameHandling = TypeNameHandling.Objects,
|
||||||
|
#pragma warning disable 618
|
||||||
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
|
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
|
||||||
|
#pragma warning restore 618
|
||||||
});
|
});
|
||||||
|
|
||||||
StringAssert.AreEqual(@"[
|
StringAssert.AreEqual(@"[
|
||||||
@@ -463,7 +465,9 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
List<object> values = (List<object>)JsonConvert.DeserializeObject(json, typeof(List<object>), new JsonSerializerSettings
|
List<object> values = (List<object>)JsonConvert.DeserializeObject(json, typeof(List<object>), new JsonSerializerSettings
|
||||||
{
|
{
|
||||||
TypeNameHandling = TypeNameHandling.Objects,
|
TypeNameHandling = TypeNameHandling.Objects,
|
||||||
|
#pragma warning disable 618
|
||||||
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
|
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
|
||||||
|
#pragma warning restore 618
|
||||||
});
|
});
|
||||||
|
|
||||||
Assert.AreEqual(4, values.Count);
|
Assert.AreEqual(4, values.Count);
|
||||||
@@ -500,7 +504,9 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
JsonConvert.DeserializeObject(json, typeof(Person), new JsonSerializerSettings
|
JsonConvert.DeserializeObject(json, typeof(Person), new JsonSerializerSettings
|
||||||
{
|
{
|
||||||
TypeNameHandling = TypeNameHandling.Objects,
|
TypeNameHandling = TypeNameHandling.Objects,
|
||||||
|
#pragma warning disable 618
|
||||||
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
|
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
|
||||||
|
#pragma warning restore 618
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
catch (JsonSerializationException ex)
|
catch (JsonSerializationException ex)
|
||||||
@@ -593,7 +599,9 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
ICorrelatedMessage message = JsonConvert.DeserializeObject<ICorrelatedMessage>(json, new JsonSerializerSettings
|
ICorrelatedMessage message = JsonConvert.DeserializeObject<ICorrelatedMessage>(json, new JsonSerializerSettings
|
||||||
{
|
{
|
||||||
TypeNameHandling = TypeNameHandling.Objects,
|
TypeNameHandling = TypeNameHandling.Objects,
|
||||||
|
#pragma warning disable 618
|
||||||
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
|
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
|
||||||
|
#pragma warning restore 618
|
||||||
});
|
});
|
||||||
|
|
||||||
CustomAssert.IsInstanceOfType(typeof(SendHttpRequest), message);
|
CustomAssert.IsInstanceOfType(typeof(SendHttpRequest), message);
|
||||||
@@ -621,7 +629,9 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
{
|
{
|
||||||
NullValueHandling = NullValueHandling.Ignore,
|
NullValueHandling = NullValueHandling.Ignore,
|
||||||
TypeNameHandling = TypeNameHandling.All,
|
TypeNameHandling = TypeNameHandling.All,
|
||||||
|
#pragma warning disable 618
|
||||||
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
|
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
|
||||||
|
#pragma warning restore 618
|
||||||
});
|
});
|
||||||
|
|
||||||
StringAssert.AreEqual(@"{
|
StringAssert.AreEqual(@"{
|
||||||
@@ -648,7 +658,7 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
[Test]
|
[Test]
|
||||||
public void WriteObjectTypeNameForProperty()
|
public void WriteObjectTypeNameForProperty()
|
||||||
{
|
{
|
||||||
string typeNamePropertyRef = ReflectionUtils.GetTypeName(typeof(TypeNameProperty), FormatterAssemblyStyle.Simple, null);
|
string typeNamePropertyRef = ReflectionUtils.GetTypeName(typeof(TypeNameProperty), TypeNameAssemblyFormatHandling.Simple, null);
|
||||||
|
|
||||||
TypeNameProperty typeNameProperty = new TypeNameProperty
|
TypeNameProperty typeNameProperty = new TypeNameProperty
|
||||||
{
|
{
|
||||||
@@ -682,7 +692,7 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
[Test]
|
[Test]
|
||||||
public void WriteListTypeNameForProperty()
|
public void WriteListTypeNameForProperty()
|
||||||
{
|
{
|
||||||
string listRef = ReflectionUtils.GetTypeName(typeof(List<int>), FormatterAssemblyStyle.Simple, null);
|
string listRef = ReflectionUtils.GetTypeName(typeof(List<int>), TypeNameAssemblyFormatHandling.Simple, null);
|
||||||
|
|
||||||
TypeNameProperty typeNameProperty = new TypeNameProperty
|
TypeNameProperty typeNameProperty = new TypeNameProperty
|
||||||
{
|
{
|
||||||
@@ -863,9 +873,9 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
|
|
||||||
string json = sw.ToString();
|
string json = sw.ToString();
|
||||||
|
|
||||||
string contentSubClassRef = ReflectionUtils.GetTypeName(typeof(ContentSubClass), FormatterAssemblyStyle.Simple, null);
|
string contentSubClassRef = ReflectionUtils.GetTypeName(typeof(ContentSubClass), TypeNameAssemblyFormatHandling.Simple, null);
|
||||||
string dictionaryRef = ReflectionUtils.GetTypeName(typeof(Dictionary<int, IList<ContentBaseClass>>), FormatterAssemblyStyle.Simple, null);
|
string dictionaryRef = ReflectionUtils.GetTypeName(typeof(Dictionary<int, IList<ContentBaseClass>>), TypeNameAssemblyFormatHandling.Simple, null);
|
||||||
string listRef = ReflectionUtils.GetTypeName(typeof(List<ContentBaseClass>), FormatterAssemblyStyle.Simple, null);
|
string listRef = ReflectionUtils.GetTypeName(typeof(List<ContentBaseClass>), TypeNameAssemblyFormatHandling.Simple, null);
|
||||||
|
|
||||||
string expected = @"{
|
string expected = @"{
|
||||||
""TestMember"": {
|
""TestMember"": {
|
||||||
@@ -966,10 +976,12 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
string json = JsonConvert.SerializeObject(collection, Formatting.Indented, new JsonSerializerSettings
|
string json = JsonConvert.SerializeObject(collection, Formatting.Indented, new JsonSerializerSettings
|
||||||
{
|
{
|
||||||
TypeNameHandling = TypeNameHandling.All,
|
TypeNameHandling = TypeNameHandling.All,
|
||||||
|
#pragma warning disable 618
|
||||||
TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple
|
TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple
|
||||||
|
#pragma warning restore 618
|
||||||
});
|
});
|
||||||
|
|
||||||
string urlStatusTypeName = ReflectionUtils.GetTypeName(typeof(UrlStatus), FormatterAssemblyStyle.Simple, null);
|
string urlStatusTypeName = ReflectionUtils.GetTypeName(typeof(UrlStatus), TypeNameAssemblyFormatHandling.Simple, null);
|
||||||
|
|
||||||
StringAssert.AreEqual(@"{
|
StringAssert.AreEqual(@"{
|
||||||
""$type"": ""System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib"",
|
""$type"": ""System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib"",
|
||||||
@@ -1003,7 +1015,9 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
object c = JsonConvert.DeserializeObject(json, new JsonSerializerSettings
|
object c = JsonConvert.DeserializeObject(json, new JsonSerializerSettings
|
||||||
{
|
{
|
||||||
TypeNameHandling = TypeNameHandling.All,
|
TypeNameHandling = TypeNameHandling.All,
|
||||||
|
#pragma warning disable 618
|
||||||
TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple
|
TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple
|
||||||
|
#pragma warning restore 618
|
||||||
});
|
});
|
||||||
|
|
||||||
CustomAssert.IsInstanceOfType(typeof(Dictionary<string, object>), c);
|
CustomAssert.IsInstanceOfType(typeof(Dictionary<string, object>), c);
|
||||||
@@ -1019,7 +1033,7 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
[Test]
|
[Test]
|
||||||
public void SerializingIEnumerableOfTShouldRetainGenericTypeInfo()
|
public void SerializingIEnumerableOfTShouldRetainGenericTypeInfo()
|
||||||
{
|
{
|
||||||
string productClassRef = ReflectionUtils.GetTypeName(typeof(CustomEnumerable<Product>), FormatterAssemblyStyle.Simple, null);
|
string productClassRef = ReflectionUtils.GetTypeName(typeof(CustomEnumerable<Product>), TypeNameAssemblyFormatHandling.Simple, null);
|
||||||
|
|
||||||
CustomEnumerable<Product> products = new CustomEnumerable<Product>();
|
CustomEnumerable<Product> products = new CustomEnumerable<Product>();
|
||||||
|
|
||||||
@@ -1107,7 +1121,7 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
|
|
||||||
string output = JsonConvert.SerializeObject(testerObject, Formatting.Indented, jsonSettings);
|
string output = JsonConvert.SerializeObject(testerObject, Formatting.Indented, jsonSettings);
|
||||||
|
|
||||||
string carClassRef = ReflectionUtils.GetTypeName(typeof(Car), FormatterAssemblyStyle.Simple, null);
|
string carClassRef = ReflectionUtils.GetTypeName(typeof(Car), TypeNameAssemblyFormatHandling.Simple, null);
|
||||||
|
|
||||||
StringAssert.AreEqual(output, @"{
|
StringAssert.AreEqual(output, @"{
|
||||||
""$type"": """ + carClassRef + @""",
|
""$type"": """ + carClassRef + @""",
|
||||||
@@ -1823,8 +1837,13 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
|
|
||||||
string serialized = JsonConvert.SerializeObject(input,
|
string serialized = JsonConvert.SerializeObject(input,
|
||||||
Newtonsoft.Json.Formatting.Indented,
|
Newtonsoft.Json.Formatting.Indented,
|
||||||
new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All, TypeNameAssemblyFormat = FormatterAssemblyStyle.Full } // TypeNameHandling.Auto will work
|
new JsonSerializerSettings
|
||||||
);
|
{
|
||||||
|
TypeNameHandling = TypeNameHandling.All,
|
||||||
|
#pragma warning disable 618
|
||||||
|
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full // TypeNameHandling.Auto will work
|
||||||
|
#pragma warning restore 618
|
||||||
|
});
|
||||||
|
|
||||||
var output = JsonConvert.DeserializeObject<List<Stack<string>>>(serialized,
|
var output = JsonConvert.DeserializeObject<List<Stack<string>>>(serialized,
|
||||||
new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }
|
new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }
|
||||||
|
|||||||
@@ -50,16 +50,16 @@ namespace Newtonsoft.Json.Tests.Utilities
|
|||||||
{
|
{
|
||||||
string typeName;
|
string typeName;
|
||||||
|
|
||||||
typeName = ReflectionUtils.GetTypeName(typeof(IList<Type>), FormatterAssemblyStyle.Simple, null);
|
typeName = ReflectionUtils.GetTypeName(typeof(IList<Type>), TypeNameAssemblyFormatHandling.Simple, null);
|
||||||
Assert.AreEqual("System.Collections.Generic.IList`1[[System.Type, mscorlib]], mscorlib", typeName);
|
Assert.AreEqual("System.Collections.Generic.IList`1[[System.Type, mscorlib]], mscorlib", typeName);
|
||||||
|
|
||||||
typeName = ReflectionUtils.GetTypeName(typeof(IDictionary<IList<Type>, IList<Type>>), FormatterAssemblyStyle.Simple, null);
|
typeName = ReflectionUtils.GetTypeName(typeof(IDictionary<IList<Type>, IList<Type>>), TypeNameAssemblyFormatHandling.Simple, null);
|
||||||
Assert.AreEqual("System.Collections.Generic.IDictionary`2[[System.Collections.Generic.IList`1[[System.Type, mscorlib]], mscorlib],[System.Collections.Generic.IList`1[[System.Type, mscorlib]], mscorlib]], mscorlib", typeName);
|
Assert.AreEqual("System.Collections.Generic.IDictionary`2[[System.Collections.Generic.IList`1[[System.Type, mscorlib]], mscorlib],[System.Collections.Generic.IList`1[[System.Type, mscorlib]], mscorlib]], mscorlib", typeName);
|
||||||
|
|
||||||
typeName = ReflectionUtils.GetTypeName(typeof(IList<>), FormatterAssemblyStyle.Simple, null);
|
typeName = ReflectionUtils.GetTypeName(typeof(IList<>), TypeNameAssemblyFormatHandling.Simple, null);
|
||||||
Assert.AreEqual("System.Collections.Generic.IList`1, mscorlib", typeName);
|
Assert.AreEqual("System.Collections.Generic.IList`1, mscorlib", typeName);
|
||||||
|
|
||||||
typeName = ReflectionUtils.GetTypeName(typeof(IDictionary<,>), FormatterAssemblyStyle.Simple, null);
|
typeName = ReflectionUtils.GetTypeName(typeof(IDictionary<,>), TypeNameAssemblyFormatHandling.Simple, null);
|
||||||
Assert.AreEqual("System.Collections.Generic.IDictionary`2, mscorlib", typeName);
|
Assert.AreEqual("System.Collections.Generic.IDictionary`2, mscorlib", typeName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ namespace Newtonsoft.Json
|
|||||||
public class JsonSerializer
|
public class JsonSerializer
|
||||||
{
|
{
|
||||||
internal TypeNameHandling _typeNameHandling;
|
internal TypeNameHandling _typeNameHandling;
|
||||||
internal FormatterAssemblyStyle _typeNameAssemblyFormat;
|
internal TypeNameAssemblyFormatHandling _typeNameAssemblyFormatHandling;
|
||||||
internal PreserveReferencesHandling _preserveReferencesHandling;
|
internal PreserveReferencesHandling _preserveReferencesHandling;
|
||||||
internal ReferenceLoopHandling _referenceLoopHandling;
|
internal ReferenceLoopHandling _referenceLoopHandling;
|
||||||
internal MissingMemberHandling _missingMemberHandling;
|
internal MissingMemberHandling _missingMemberHandling;
|
||||||
@@ -161,9 +161,10 @@ namespace Newtonsoft.Json
|
|||||||
/// Gets or sets how a type name assembly is written and resolved by the serializer.
|
/// Gets or sets how a type name assembly is written and resolved by the serializer.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The type name assembly format.</value>
|
/// <value>The type name assembly format.</value>
|
||||||
|
[Obsolete("TypeNameAssemblyFormat is obsolete. Use TypeNameAssemblyFormatHandling instead.")]
|
||||||
public virtual FormatterAssemblyStyle TypeNameAssemblyFormat
|
public virtual FormatterAssemblyStyle TypeNameAssemblyFormat
|
||||||
{
|
{
|
||||||
get { return _typeNameAssemblyFormat; }
|
get { return (FormatterAssemblyStyle)_typeNameAssemblyFormatHandling; }
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (value < FormatterAssemblyStyle.Simple || value > FormatterAssemblyStyle.Full)
|
if (value < FormatterAssemblyStyle.Simple || value > FormatterAssemblyStyle.Full)
|
||||||
@@ -171,7 +172,25 @@ namespace Newtonsoft.Json
|
|||||||
throw new ArgumentOutOfRangeException(nameof(value));
|
throw new ArgumentOutOfRangeException(nameof(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
_typeNameAssemblyFormat = value;
|
_typeNameAssemblyFormatHandling = (TypeNameAssemblyFormatHandling)value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets how a type name assembly is written and resolved by the serializer.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The type name assembly format.</value>
|
||||||
|
public virtual TypeNameAssemblyFormatHandling TypeNameAssemblyFormatHandling
|
||||||
|
{
|
||||||
|
get { return _typeNameAssemblyFormatHandling; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (value < TypeNameAssemblyFormatHandling.Simple || value > TypeNameAssemblyFormatHandling.Full)
|
||||||
|
{
|
||||||
|
throw new ArgumentOutOfRangeException(nameof(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
_typeNameAssemblyFormatHandling = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -594,9 +613,9 @@ namespace Newtonsoft.Json
|
|||||||
{
|
{
|
||||||
serializer.MetadataPropertyHandling = settings.MetadataPropertyHandling;
|
serializer.MetadataPropertyHandling = settings.MetadataPropertyHandling;
|
||||||
}
|
}
|
||||||
if (settings._typeNameAssemblyFormat != null)
|
if (settings._typeNameAssemblyFormatHandling != null)
|
||||||
{
|
{
|
||||||
serializer.TypeNameAssemblyFormat = settings.TypeNameAssemblyFormat;
|
serializer.TypeNameAssemblyFormatHandling = settings.TypeNameAssemblyFormatHandling;
|
||||||
}
|
}
|
||||||
if (settings._preserveReferencesHandling != null)
|
if (settings._preserveReferencesHandling != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ namespace Newtonsoft.Json
|
|||||||
internal const FloatParseHandling DefaultFloatParseHandling = FloatParseHandling.Double;
|
internal const FloatParseHandling DefaultFloatParseHandling = FloatParseHandling.Double;
|
||||||
internal const FloatFormatHandling DefaultFloatFormatHandling = FloatFormatHandling.String;
|
internal const FloatFormatHandling DefaultFloatFormatHandling = FloatFormatHandling.String;
|
||||||
internal const StringEscapeHandling DefaultStringEscapeHandling = StringEscapeHandling.Default;
|
internal const StringEscapeHandling DefaultStringEscapeHandling = StringEscapeHandling.Default;
|
||||||
internal const FormatterAssemblyStyle DefaultFormatterAssemblyStyle = FormatterAssemblyStyle.Simple;
|
internal const TypeNameAssemblyFormatHandling DefaultTypeNameAssemblyFormatHandling = Json.TypeNameAssemblyFormatHandling.Simple;
|
||||||
internal static readonly CultureInfo DefaultCulture;
|
internal static readonly CultureInfo DefaultCulture;
|
||||||
internal const bool DefaultCheckAdditionalContent = false;
|
internal const bool DefaultCheckAdditionalContent = false;
|
||||||
internal const string DefaultDateFormatString = @"yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK";
|
internal const string DefaultDateFormatString = @"yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK";
|
||||||
@@ -75,7 +75,7 @@ namespace Newtonsoft.Json
|
|||||||
internal bool _maxDepthSet;
|
internal bool _maxDepthSet;
|
||||||
internal string _dateFormatString;
|
internal string _dateFormatString;
|
||||||
internal bool _dateFormatStringSet;
|
internal bool _dateFormatStringSet;
|
||||||
internal FormatterAssemblyStyle? _typeNameAssemblyFormat;
|
internal TypeNameAssemblyFormatHandling? _typeNameAssemblyFormatHandling;
|
||||||
internal DefaultValueHandling? _defaultValueHandling;
|
internal DefaultValueHandling? _defaultValueHandling;
|
||||||
internal PreserveReferencesHandling? _preserveReferencesHandling;
|
internal PreserveReferencesHandling? _preserveReferencesHandling;
|
||||||
internal NullValueHandling? _nullValueHandling;
|
internal NullValueHandling? _nullValueHandling;
|
||||||
@@ -182,10 +182,21 @@ namespace Newtonsoft.Json
|
|||||||
/// Gets or sets how a type name assembly is written and resolved by the serializer.
|
/// Gets or sets how a type name assembly is written and resolved by the serializer.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The type name assembly format.</value>
|
/// <value>The type name assembly format.</value>
|
||||||
|
[Obsolete("TypeNameAssemblyFormat is obsolete. Use TypeNameAssemblyFormatHandling instead.")]
|
||||||
public FormatterAssemblyStyle TypeNameAssemblyFormat
|
public FormatterAssemblyStyle TypeNameAssemblyFormat
|
||||||
{
|
{
|
||||||
get { return _typeNameAssemblyFormat ?? DefaultFormatterAssemblyStyle; }
|
get { return (FormatterAssemblyStyle)TypeNameAssemblyFormatHandling; }
|
||||||
set { _typeNameAssemblyFormat = value; }
|
set { TypeNameAssemblyFormatHandling = (TypeNameAssemblyFormatHandling)value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets how a type name assembly is written and resolved by the serializer.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The type name assembly format.</value>
|
||||||
|
public TypeNameAssemblyFormatHandling TypeNameAssemblyFormatHandling
|
||||||
|
{
|
||||||
|
get { return _typeNameAssemblyFormatHandling ?? DefaultTypeNameAssemblyFormatHandling; }
|
||||||
|
set { _typeNameAssemblyFormatHandling = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -144,6 +144,8 @@
|
|||||||
<Compile Include="Serialization\TraceJsonReader.cs" />
|
<Compile Include="Serialization\TraceJsonReader.cs" />
|
||||||
<Compile Include="Serialization\TraceJsonWriter.cs" />
|
<Compile Include="Serialization\TraceJsonWriter.cs" />
|
||||||
<Compile Include="StringEscapeHandling.cs" />
|
<Compile Include="StringEscapeHandling.cs" />
|
||||||
|
<Compile Include="TraceLevel.cs" />
|
||||||
|
<Compile Include="TypeNameAssemblyFormatHandling.cs" />
|
||||||
<Compile Include="Utilities\DateTimeParser.cs" />
|
<Compile Include="Utilities\DateTimeParser.cs" />
|
||||||
<Compile Include="Utilities\DynamicProxy.cs" />
|
<Compile Include="Utilities\DynamicProxy.cs" />
|
||||||
<Compile Include="Utilities\DynamicProxyMetaObject.cs" />
|
<Compile Include="Utilities\DynamicProxyMetaObject.cs" />
|
||||||
|
|||||||
@@ -158,6 +158,7 @@
|
|||||||
<Compile Include="Serialization\TraceJsonWriter.cs" />
|
<Compile Include="Serialization\TraceJsonWriter.cs" />
|
||||||
<Compile Include="StringEscapeHandling.cs" />
|
<Compile Include="StringEscapeHandling.cs" />
|
||||||
<Compile Include="TraceLevel.cs" />
|
<Compile Include="TraceLevel.cs" />
|
||||||
|
<Compile Include="TypeNameAssemblyFormatHandling.cs" />
|
||||||
<Compile Include="Utilities\DateTimeParser.cs" />
|
<Compile Include="Utilities\DateTimeParser.cs" />
|
||||||
<Compile Include="Utilities\DynamicProxy.cs" />
|
<Compile Include="Utilities\DynamicProxy.cs" />
|
||||||
<Compile Include="Linq\JRaw.cs" />
|
<Compile Include="Linq\JRaw.cs" />
|
||||||
|
|||||||
@@ -113,6 +113,7 @@
|
|||||||
<Compile Include="Converters\VersionConverter.cs" />
|
<Compile Include="Converters\VersionConverter.cs" />
|
||||||
<Compile Include="FloatFormatHandling.cs" />
|
<Compile Include="FloatFormatHandling.cs" />
|
||||||
<Compile Include="FloatParseHandling.cs" />
|
<Compile Include="FloatParseHandling.cs" />
|
||||||
|
<Compile Include="FormatterAssemblyStyle.cs" />
|
||||||
<Compile Include="IArrayPool.cs" />
|
<Compile Include="IArrayPool.cs" />
|
||||||
<Compile Include="JsonDictionaryAttribute.cs" />
|
<Compile Include="JsonDictionaryAttribute.cs" />
|
||||||
<Compile Include="JsonException.cs" />
|
<Compile Include="JsonException.cs" />
|
||||||
@@ -142,6 +143,7 @@
|
|||||||
<Compile Include="Linq\MergeArrayHandling.cs" />
|
<Compile Include="Linq\MergeArrayHandling.cs" />
|
||||||
<Compile Include="Linq\MergeNullValueHandling.cs" />
|
<Compile Include="Linq\MergeNullValueHandling.cs" />
|
||||||
<Compile Include="MetadataPropertyHandling.cs" />
|
<Compile Include="MetadataPropertyHandling.cs" />
|
||||||
|
<Compile Include="SerializationBinder.cs" />
|
||||||
<Compile Include="Serialization\CamelCaseNamingStrategy.cs" />
|
<Compile Include="Serialization\CamelCaseNamingStrategy.cs" />
|
||||||
<Compile Include="Serialization\DefaultNamingStrategy.cs" />
|
<Compile Include="Serialization\DefaultNamingStrategy.cs" />
|
||||||
<Compile Include="Serialization\DiagnosticsTraceWriter.cs" />
|
<Compile Include="Serialization\DiagnosticsTraceWriter.cs" />
|
||||||
@@ -156,6 +158,8 @@
|
|||||||
<Compile Include="Serialization\TraceJsonReader.cs" />
|
<Compile Include="Serialization\TraceJsonReader.cs" />
|
||||||
<Compile Include="Serialization\TraceJsonWriter.cs" />
|
<Compile Include="Serialization\TraceJsonWriter.cs" />
|
||||||
<Compile Include="StringEscapeHandling.cs" />
|
<Compile Include="StringEscapeHandling.cs" />
|
||||||
|
<Compile Include="TraceLevel.cs" />
|
||||||
|
<Compile Include="TypeNameAssemblyFormatHandling.cs" />
|
||||||
<Compile Include="Utilities\DateTimeParser.cs" />
|
<Compile Include="Utilities\DateTimeParser.cs" />
|
||||||
<Compile Include="Utilities\DynamicProxy.cs" />
|
<Compile Include="Utilities\DynamicProxy.cs" />
|
||||||
<Compile Include="Linq\JRaw.cs" />
|
<Compile Include="Linq\JRaw.cs" />
|
||||||
|
|||||||
@@ -210,6 +210,7 @@
|
|||||||
<Compile Include="Serialization\TraceJsonWriter.cs" />
|
<Compile Include="Serialization\TraceJsonWriter.cs" />
|
||||||
<Compile Include="StringEscapeHandling.cs" />
|
<Compile Include="StringEscapeHandling.cs" />
|
||||||
<Compile Include="TraceLevel.cs" />
|
<Compile Include="TraceLevel.cs" />
|
||||||
|
<Compile Include="TypeNameAssemblyFormatHandling.cs" />
|
||||||
<Compile Include="TypeNameHandling.cs" />
|
<Compile Include="TypeNameHandling.cs" />
|
||||||
<Compile Include="Utilities\Base64Encoder.cs" />
|
<Compile Include="Utilities\Base64Encoder.cs" />
|
||||||
<Compile Include="Utilities\BidirectionalDictionary.cs" />
|
<Compile Include="Utilities\BidirectionalDictionary.cs" />
|
||||||
|
|||||||
@@ -215,6 +215,7 @@
|
|||||||
<Compile Include="Serialization\TraceJsonWriter.cs" />
|
<Compile Include="Serialization\TraceJsonWriter.cs" />
|
||||||
<Compile Include="StringEscapeHandling.cs" />
|
<Compile Include="StringEscapeHandling.cs" />
|
||||||
<Compile Include="TraceLevel.cs" />
|
<Compile Include="TraceLevel.cs" />
|
||||||
|
<Compile Include="TypeNameAssemblyFormatHandling.cs" />
|
||||||
<Compile Include="TypeNameHandling.cs" />
|
<Compile Include="TypeNameHandling.cs" />
|
||||||
<Compile Include="Utilities\Base64Encoder.cs" />
|
<Compile Include="Utilities\Base64Encoder.cs" />
|
||||||
<Compile Include="Utilities\BidirectionalDictionary.cs" />
|
<Compile Include="Utilities\BidirectionalDictionary.cs" />
|
||||||
|
|||||||
@@ -212,6 +212,7 @@
|
|||||||
<Compile Include="Serialization\ReflectionValueProvider.cs" />
|
<Compile Include="Serialization\ReflectionValueProvider.cs" />
|
||||||
<Compile Include="Serialization\TraceJsonReader.cs" />
|
<Compile Include="Serialization\TraceJsonReader.cs" />
|
||||||
<Compile Include="Serialization\TraceJsonWriter.cs" />
|
<Compile Include="Serialization\TraceJsonWriter.cs" />
|
||||||
|
<Compile Include="TypeNameAssemblyFormatHandling.cs" />
|
||||||
<Compile Include="StringEscapeHandling.cs" />
|
<Compile Include="StringEscapeHandling.cs" />
|
||||||
<Compile Include="TraceLevel.cs" />
|
<Compile Include="TraceLevel.cs" />
|
||||||
<Compile Include="TypeNameHandling.cs" />
|
<Compile Include="TypeNameHandling.cs" />
|
||||||
|
|||||||
@@ -603,7 +603,7 @@ namespace Newtonsoft.Json.Serialization
|
|||||||
|
|
||||||
private void WriteTypeProperty(JsonWriter writer, Type type)
|
private void WriteTypeProperty(JsonWriter writer, Type type)
|
||||||
{
|
{
|
||||||
string typeName = ReflectionUtils.GetTypeName(type, Serializer._typeNameAssemblyFormat, Serializer._binder);
|
string typeName = ReflectionUtils.GetTypeName(type, Serializer._typeNameAssemblyFormatHandling, Serializer._binder);
|
||||||
|
|
||||||
if (TraceWriter != null && TraceWriter.LevelFilter >= TraceLevel.Verbose)
|
if (TraceWriter != null && TraceWriter.LevelFilter >= TraceLevel.Verbose)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -121,12 +121,19 @@ namespace Newtonsoft.Json.Serialization
|
|||||||
set { _serializer.MetadataPropertyHandling = value; }
|
set { _serializer.MetadataPropertyHandling = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Obsolete("TypeNameAssemblyFormat is obsolete. Use TypeNameAssemblyFormatHandling instead.")]
|
||||||
public override FormatterAssemblyStyle TypeNameAssemblyFormat
|
public override FormatterAssemblyStyle TypeNameAssemblyFormat
|
||||||
{
|
{
|
||||||
get { return _serializer.TypeNameAssemblyFormat; }
|
get { return _serializer.TypeNameAssemblyFormat; }
|
||||||
set { _serializer.TypeNameAssemblyFormat = value; }
|
set { _serializer.TypeNameAssemblyFormat = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override TypeNameAssemblyFormatHandling TypeNameAssemblyFormatHandling
|
||||||
|
{
|
||||||
|
get { return _serializer.TypeNameAssemblyFormatHandling; }
|
||||||
|
set { _serializer.TypeNameAssemblyFormatHandling = value; }
|
||||||
|
}
|
||||||
|
|
||||||
public override ConstructorHandling ConstructorHandling
|
public override ConstructorHandling ConstructorHandling
|
||||||
{
|
{
|
||||||
get { return _serializer.ConstructorHandling; }
|
get { return _serializer.ConstructorHandling; }
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
#region License
|
||||||
|
// Copyright (c) 2007 James Newton-King
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person
|
||||||
|
// obtaining a copy of this software and associated documentation
|
||||||
|
// files (the "Software"), to deal in the Software without
|
||||||
|
// restriction, including without limitation the rights to use,
|
||||||
|
// copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the
|
||||||
|
// Software is furnished to do so, subject to the following
|
||||||
|
// conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be
|
||||||
|
// included in all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
// OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
namespace Newtonsoft.Json
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Indicates the method that will be used during deserialization for locating and loading assemblies.
|
||||||
|
/// </summary>
|
||||||
|
public enum TypeNameAssemblyFormatHandling
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method is used to load the assembly.
|
||||||
|
/// </summary>
|
||||||
|
Simple = 0,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the Assembly class is used to load the assembly.
|
||||||
|
/// </summary>
|
||||||
|
Full = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -151,7 +151,7 @@ namespace Newtonsoft.Json.Utilities
|
|||||||
return (v != null) ? v.GetType() : null;
|
return (v != null) ? v.GetType() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetTypeName(Type t, FormatterAssemblyStyle assemblyFormat, SerializationBinder binder)
|
public static string GetTypeName(Type t, TypeNameAssemblyFormatHandling assemblyFormat, SerializationBinder binder)
|
||||||
{
|
{
|
||||||
string fullyQualifiedTypeName;
|
string fullyQualifiedTypeName;
|
||||||
#if !(NET20 || NET35)
|
#if !(NET20 || NET35)
|
||||||
@@ -171,9 +171,9 @@ namespace Newtonsoft.Json.Utilities
|
|||||||
|
|
||||||
switch (assemblyFormat)
|
switch (assemblyFormat)
|
||||||
{
|
{
|
||||||
case FormatterAssemblyStyle.Simple:
|
case TypeNameAssemblyFormatHandling.Simple:
|
||||||
return RemoveAssemblyDetails(fullyQualifiedTypeName);
|
return RemoveAssemblyDetails(fullyQualifiedTypeName);
|
||||||
case FormatterAssemblyStyle.Full:
|
case TypeNameAssemblyFormatHandling.Full:
|
||||||
return fullyQualifiedTypeName;
|
return fullyQualifiedTypeName;
|
||||||
default:
|
default:
|
||||||
throw new ArgumentOutOfRangeException();
|
throw new ArgumentOutOfRangeException();
|
||||||
|
|||||||
Reference in New Issue
Block a user