Я использую Общий класс в качестве Контракта с ответными данными. Все хорошо, и это значительно упрощает дизайн моей службы WCF.
Каждый запрос получает стандартный объект ответа со следующей подписью:
- Статус (Enum)
- Сообщение (Строка)
- Результат (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"
Есть ли способ обойти эту проблему?
Должен ли я использовать этот класс как просто абстрактный класс, который наследуется?
Я бы предпочел не иметь несколько классов, загромождающих мой код.