Active Directory から個人に関する情報を返す WCF サービスを作成しています。個人の詳細を返すだけでなく、マネージャーのユーザー名とフルネームも返す必要があります。
私はこれを次のようにコーディングし始めました:...
[DataContract]
public class ADPerson
{
Guid objectGuid;
Guid managerObjectGuid;
string username;
string displayname;
[DataMember]
public string Username
{
get { return this.username; }
set { this.username = value; }
}
[DataMember]
public string DisplayName
{
get { return this.displayName; }
set { this.displayName = value; }
}
[DataMember]
public ADPerson Manager
{
get { return new ADPerson(this.managerObjectGuid); }
set { this.managerObjectGuid = value.objectGuid; }
}
/* ... */
}
...しかし、これには停止条件がないことに気付きました。つまり、マネージャーが定義されていないユーザー (CEO など) に到達するまで、オブジェクト グラフを上方向に移動します。
ADPerson クラスを再利用しながらこの停止条件を設定する良い方法はありますか、それともマネージャーの詳細を取得する別の方法を提供する必要がありますか (たとえば、表示したい詳細を自分のフィールドに入れるなど) Manager プロパティから DataMember を削除するか、マネージャーのマネージャーではない ADPerson フィールドのサブセットを提示する ADManager クラスを作成しますか?
これは、問題を解決するのが簡単な別のケースですが、問題の最善の解決策が何であるかを知ることは私を悩ませます.
前もって感謝します、
JB