From 2108d65a837156ea1868afaf9341ecf8c40e0e36 Mon Sep 17 00:00:00 2001 From: Paul Betts Date: Tue, 12 Feb 2013 10:58:11 -0800 Subject: [PATCH] -patch InvokeOn* to call all methods --- .../Serialization/JsonContract.cs | 39 ++++++++++++++----- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/Src/Newtonsoft.Json/Serialization/JsonContract.cs b/Src/Newtonsoft.Json/Serialization/JsonContract.cs index 2a5c3f2e..82f12dfe 100644 --- a/Src/Newtonsoft.Json/Serialization/JsonContract.cs +++ b/Src/Newtonsoft.Json/Serialization/JsonContract.cs @@ -204,32 +204,51 @@ namespace Newtonsoft.Json.Serialization internal void InvokeOnSerializing(object o, StreamingContext context) { - if (OnSerializing != null) - OnSerializing.Invoke(o, new object[] {context}); + if (OnSerializingMethods == null) return; + + foreach (MethodInfo mi in OnSerializingMethods) + { + mi.Invoke(o, new object[] {context}); + } } internal void InvokeOnSerialized(object o, StreamingContext context) { - if (OnSerialized != null) - OnSerialized.Invoke(o, new object[] {context}); + if (OnSerializedMethods == null) return; + + foreach (MethodInfo mi in OnSerializedMethods) + { + mi.Invoke(o, new object[] {context}); + } } internal void InvokeOnDeserializing(object o, StreamingContext context) { - if (OnDeserializing != null) - OnDeserializing.Invoke(o, new object[] {context}); + if (OnDeserializingMethods == null) return; + + foreach (MethodInfo mi in OnDeserializingMethods) + { + mi.Invoke(o, new object[] {context}); + } } internal void InvokeOnDeserialized(object o, StreamingContext context) { - if (OnDeserialized != null) - OnDeserialized.Invoke(o, new object[] {context}); + if (OnDeserializedMethods == null) return; + + foreach (MethodInfo mi in OnDeserializedMethods) + { + mi.Invoke(o, new object[] {context}); + } } internal void InvokeOnError(object o, StreamingContext context, ErrorContext errorContext) { - if (OnError != null) - OnError.Invoke(o, new object[] {context, errorContext}); + if (OnErrorMethods == null) return; + foreach (MethodInfo mi in OnErrorMethods) + { + mi.Invoke(o, new object[] {context, errorContext}); + } } internal JsonContract(Type underlyingType)