在调用方法之前在Web服务中创建事件日志

时间:2014-05-02 10:22:05

标签: json web-services rest

我有一个使用一种方法的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;。而且,我如何访问正在发送到服务的内容,以便我可以检查它,以便我可以告诉那些尝试调用服务的人他们做错了什么?

0 个答案:

没有答案