private void ResolvePropertyAccessors(Type type, List <SynchronizableMember> synchronizableMembers)
 {
     PropertyInfo[] properties = type.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
     for (var i = 0; i < properties.Length; i++)
     {
         PropertyInfo         propertyInfo         = properties[i];
         SynchronizeAttribute synchronizeAttribute = FindSynchronizeAttribute(propertyInfo);
         if (synchronizeAttribute == null)
         {
             continue;
         }
         Func <object, object>   getter     = ReflectionUtils.CompilePropertyGetter(propertyInfo);
         Action <object, object> setter     = ReflectionUtils.CompilePropertySetter(propertyInfo);
         ISerializer             serializer = _serializerCollection.FindSerializerByType(propertyInfo.PropertyType);
         synchronizableMembers.Add(new SynchronizableMember(synchronizableMembers.Count, serializer, propertyInfo, synchronizeAttribute, getter, setter));
     }
 }