protected virtual void DeserializeNestedObject <T>(NestedMapping nestedMapping, T instance, TDeserializeState state) { if (IsObjectNull(state)) { nestedMapping.SetValue(instance, null); return; } if (nestedMapping.IsDynamicType) { var dynamicInstance = DeserializeDynamicTypeData(state); nestedMapping.SetValue(instance, dynamicInstance); return; } var childInstance = TypeCreator.Instantiate(nestedMapping.Type); nestedMapping.SetValue(instance, childInstance); Deserialize(nestedMapping.InternalMappings, childInstance, state); }