Я не думаю, что в SDK Azures Mobile Services SDK (в частности, в автономном режиме синхронизации) есть проверка подлинности модели/свойства коробки.Проверка на стороне клиента для мобильных услуг Azure
Можно выполнить проверку на сервере, но мы также хотим выполнить проверку и очистку на клиенте, как это делается для веб-приложений.
Так что материал, который мы привыкли на клиенте, с использованием чего-то вроде sqlite-net
(или подобного) недоступен. Напр.
[Max(42)]
public int Foo { get; set; }
[Min(1)]
public int Bar { get; set; }
[Required]
[MaxLength(42)]
public string Baz { get; set; }
// and so on
Поэтому нам нужно сделать что-то обычай. Проверки атрибутов сами легко осуществить, что-то вроде:
[AttributeUsage (AttributeTargets.Property)]
public class MaxAttribute : Attribute {
public int Value { get; private set; }
public MaxAttribute (int value) {
Value = value;
}
}
Но те рода атрибуты должны быть проверены где-то, и я не знаю, где бы хорошее место.
Есть асинхронные вызовы для операций CRUD, а также для синхронизации push и pull. Также необходимо учитывать, что произойдет после сбоев проверки модели/свойств и, по-видимому, прервать нажатие. Но это становится сложно, поскольку есть простые и пакетные перехватчики в зависимости от того, используется ли «обработчик синхронизации».
Мне никогда не приходилось писать свою собственную проверку до сих пор. Итак, для тех из вас, кто сделал что-то подобное ... где было бы хорошим местом для проверки этих атрибутов?
Возможно, есть способ использовать 'System.ComponentModel.DataAnnotations', но я сомневаюсь, что это PCL, и поэтому probbaly не будет работать в мобильных приложениях Xamarin. –
Если вы пишете пользовательское локальное хранилище, вы можете сделать проверку на наличие обновлений там. Выполнение проверки в обработчике синхронизации, вероятно, слишком поздно, поскольку пользователь уже внес изменения и теперь хочет их синхронизировать. Почему бы не сделать валидацию в пользовательском интерфейсе? –