Skip to content

Instantly share code, notes, and snippets.

@thedoritos
Created November 26, 2014 14:21
Show Gist options
  • Save thedoritos/6f4442c82be66ed5e4c0 to your computer and use it in GitHub Desktop.
Save thedoritos/6f4442c82be66ed5e4c0 to your computer and use it in GitHub Desktop.
LitJson.JsonMapper mod to set values on private members with JsonMapper.ToObject<T>
namespace LitJson
{
// ...
public class JsonMapper
{
// ..
private static void AddObjectMetadata (Type type)
{
// ...
foreach (PropertyInfo p_info in type.GetProperties ()) {
// ...
}
foreach (FieldInfo f_info in type.GetFields ()) {
// ...
}
foreach (MemberInfo m_info in type.GetMembers(BindingFlags.Instance | BindingFlags.NonPublic))
{
if (! (m_info.MemberType == MemberTypes.Field || m_info.MemberType == MemberTypes.Property)) continue;
PropertyMetadata p_data = new PropertyMetadata();
p_data.Info = m_info;
p_data.IsField = m_info.MemberType == MemberTypes.Field;
p_data.Type = p_data.IsField ? (m_info as FieldInfo).FieldType : (m_info as PropertyInfo).PropertyType;
data.Properties.Add(m_info.Name, p_data);
}
lock (object_metadata_lock) {
// ...
}
}
// ...
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment