【发布时间】:2010-08-24 17:57:48
【问题描述】:
使用这样的对象:
[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 调用它,请说出这样的不带 ID 的话:
<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?
【问题讨论】:
标签: c# wcf rest serialization