С таким объектом:
[DataContract]
public class SampleItem
{
private int _id;
[DataMember(IsRequired = true)]
public int Id
{
get { return _id; }
set { _id = value; }
}
private string _stringValue;
[DataMember()]
public string StringValue
{
get { return _stringValue; }
set { _stringValue = value; }
}
И вызов REST вот так:
[WebInvoke(UriTemplate = "", Method = "POST")]
public SampleItem Create(SampleItem instance)
{
if (instance == null)
throw new WebFaultException<string>("The SampleItem returned wasn't correctly formatted.",
HttpStatusCode.BadRequest);
return instance;
}
Если я позвоню с недопустимым SampleItem, произнесите что-нибудь без идентификатора, например:
<SampleItem xmlns="http://schemas.datacontract.org/2004/07/UserWebServices" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><StringValue>SingleItem</StringValue></SampleItem>
Затем сервер возвращает мне 400 (правильно) без полезной информации об ошибке (все, что я получаю, это: сервер обнаружил ошибку при обработке запроса. Дополнительные сведения см. В журналах сервера). В идеале я хочу сказать, что требуется что-то вроде ID.
Как мне перехватить место, где генерируется эта ошибка, и выдать свое собственное исключение WebFaultException?