static private InvokeOnSerialized ( Object value, DataContract contract, System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson context ) : void | ||
value | Object | |
contract | DataContract | |
context | System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson | |
return | void |
public static Dictionary <string, object> ConvertClassDataContractToDictionary(DataContractJsonSerializer serializer, ClassDataContract dataContract, object value, XmlObjectSerializerWriteContextComplexJson context, bool writeServerType) { Dictionary <string, object> classToDictionary = new Dictionary <string, object>(); if (writeServerType) { AddTypeInformation(classToDictionary, DataContract.GetDataContract(value.GetType())); } if (dataContract.UnderlyingType == Globals.TypeOfDateTimeOffsetAdapter) { DateTimeOffset dto = (DateTimeOffset)value; classToDictionary["DateTime"] = dto.UtcDateTime; classToDictionary["OffsetMinutes"] = (short)dto.Offset.TotalMinutes; return(classToDictionary); } else if (dataContract.IsKeyValuePairAdapter) { //Convert KeyValuePair<K,T> to KeyValuePairAdapter<K,T> value = dataContract.KeyValuePairAdapterConstructorInfo.Invoke(new object[] { value }); } DataContractJsonSerializer.InvokeOnSerializing(value, dataContract, context); WriteClassDataContractMembers(serializer, dataContract, ref classToDictionary, value, context); DataContractJsonSerializer.InvokeOnSerialized(value, dataContract, context); return(classToDictionary); }