我有一个使用一种方法的Rest Web服务。该方法需要传入json格式的对象。操作契约如下所示:
[OperationContract]
[WebInvoke(Method = "POST",
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "projectslist")]
List<Project> ProjectsList(ProjectList ProjectListObject);
DataContract就是这样:
[DataContract]
public class ProjectList
{
[DataMember]
public string APIKey { get; set; }
[DataMember]
public string ProjectCentre { get; set; }
public ProjectList(string apiKey, string projectCentre)
{
this.APIKey = apiKey;
this.ProjectCentre = projectCentre;
}
}
出于这个问题的目的,所谓的方法并不重要,但基本上看起来像这样。
public List<Project> ProjectsList(ProjectList ProjectListObject)
{
List<Project> myProjects = new List<Project>();
//code omitted here for clarity
//this just gets a list of projects and returns it
return myProjects;
}
现在,如果有人调用我的服务并将格式正确的json对象传递给它 - 它可以正常工作并返回项目列表。
如果有人将一些格式不正确的json对象传递给它 - 他们只需返回400 BAD REQUEST。
如果我调试我的服务并向它发送格式不正确的json对象 - 我的ProjectsList()方法不会被调用。所以,我不能在我的方法中设置一个断点并检查发送的内容 - 因为该方法未被调用。如果将错误格式化的json对象传递给服务,则在调用我的方法之前,服务只是决定它没有传递正确格式的对象并发回BAD REQUEST消息。
所以,我的问题是,如何中断这个过程,以便我可以编写一个事件日志 - 即使只是为了记录格式错误的json对象收到&#39;。而且,我如何访问正在发送到服务的内容,以便我可以检查它,以便我可以告诉那些尝试调用服务的人他们做错了什么?