AzureのモバイルサービスSDK(特にオフライン同期のもの)には、すぐに使用できるモデル/プロパティの検証はありません。Azureモバイルサービスのクライアント側モデルの検証
サーバー上で検証を実行できますが、Webアプリケーションの場合と同様に、クライアントで検証とクリーニングを実行したいと考えています。
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操作とプッシュ/プル同期の非同期呼び出しがあります。モデル/プロパティの検証が失敗した後に何が起きるかを考慮する必要があり、おそらくプッシュを中止します。しかし、シンクハンドラを使用するかどうかに応じて、単純な一括プッシュインターセプタが存在するため、扱いにくいものになります。
今まで自分で検証を書く必要はありませんでした。だから似たようなことをやったあなたの人たちのために... これらの属性のチェックを実行するには、どこが良いでしょうか?
「System.ComponentModel.DataAnnotations」を使用する方法があるかもしれませんが、PCLであるとは思わないので、Xamarinモバイルアプリではprobbalyは動作しません。 –
カスタムローカルストアを作成する場合は、そこでの更新を検証できます。同期ハンドラで検証を行うのはおそらく遅すぎます。これは、ユーザーが既に変更を加えて同期をとっているためです。なぜUI自体で検証をしないのですか? –