2010-09-29 219 views
0

我有以下代码:Web服务方法返回响应对象,而不是自定义对象

[WebMethod] 
    [SoapHeader("_webServiceAuth")] 
    public User GetUser(string username) 
    { 
     try 
     { 
      this._validationMethods.Validate(_webServiceAuth); 
      User user = new User(username); 

      return user; 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

正如你可以看到,人们会期望得到一个用户,当我做了性反应:

myUser = this.Service.GetUser(username); 

但我得到的是一个“GetUserRequest”实例的请求,并返回一个“GetUserResponse”实例。任何帮助,为什么我的对象不是由我的web服务发送?

+2

您应该删除该try/catch块。除了引发异常时,它什么也不做,除非搞乱你的堆栈。它看起来像是来自“throw”声明的异常。 – 2010-09-30 19:29:44

+0

的确,这正是我们正在做的事情,每当发生这种事时,我都会感到失落!感谢您的提示:) – FelixMM 2010-10-02 23:14:36

回答

2

你会发现GetUserRequest对象有一个字符串属性(username),而GetUserResponse对象包含你的User对象。这些Request/Response对象是存在于SOAP消息中的容器。

我相信他们通常会被抽象出来,但我可能会误解。

+0

感谢您的答复,但我没有看到我的用户对象内GetUserResponse。更新:忘记最后的评论,发现它xD – FelixMM 2010-09-29 04:35:21

相关问题