ジェネリック クラスを応答データ コントラクトとして使用しています。すべてが順調で、これにより、WCF サービスの設計が大幅に合理化されています。
各リクエストには、次のシグネチャを持つ標準のレスポンス オブジェクトが与えられます。
- ステータス (列挙型)
- メッセージ (文字列)
- 結果 (T)
以下は応答クラスです。
[DataContract]
public class Response<T>
{
public Response() {}
public Response(T result)
{
this.result = result;
if (result != null)
{
this.status = Status.StatusEnum.Success;
}
else
{
this.status = Status.StatusEnum.Warning;
}
}
public Response(T result, Status.StatusEnum status)
{
this.status = status;
this.message = message;
}
public Response(T result, Status.StatusEnum status, string message)
{
this.status = status;
this.message = message;
this.result = result;
}
[DataMember]
public Status.StatusEnum status { get; set; }
[DataMember]
public string message { get; set; }
[DataMember]
public T result { get; set; }
}
そして、これは見事に機能します。私が抱えている唯一の問題は、WCFクライアントがこのオブジェクト「ResponseOfAccountnT9LOUZL」に本当にくだらない名前を付けられていることです
この問題を回避する方法はありますか?
このクラスを継承された単なる抽象クラスとして使用する必要がありますか? 複数のクラスでコードが乱雑になるのは避けたいと思います。