単純なエンティティトランスレータを使用して、実際のサーバー側のビジネスオブジェクトにDTOの値をマップするWebサービスを作成しました。このエクササイズの一環として。 のヌル値とのクライアントは、の値が設定されていないという「面白い」区別があります。nullと値が設定されていない
問題は、我々は、クライアントが明示的にただし、クライアントが明示的に意味している場合を知る方法がありません標準NULL可能なタイプを使用して、値を設定していない場合は、実際のビジネスオブジェクトにデフォルト値を設定することを本質的に"nullに設定する"または設定しないでください。
ここの解決策は、明らかに「フラグ」なんらかの種類です。
ビジネスオブジェクト内では、プロパティセッター内で設定されたプライベート "IsDirty"フラグを使用してフィールドの状態を内部的に追跡できますが、DTOは実際にはインターフェイスのみを指定するため、このデータを公開します。これにはいくつかの実装オプションがあります。言語はC#(静的に型指定されているので)です。
- 各プロパティに「IsSet」フラグが表示される可能性がありますか?
- 各プロパティは、.Valueプロパティと.IsSetプロパティを持つクラスとして公開できますか? などなど
データ契約上のこれらの「フラグ」を公開する方法あなたが選ぶでしょうか? あなたはこれについてベストプラクティスとして何を考えていますか?
これに関するご意見をいただければ幸いです。