2010-11-22 35 views
0

我下载了一个示例应用程序,用于在线系统使用某些Web服务。在C#2.0中返回值时出错

我不确定是否需要下面的所有代码,但这是我得到的,我试图做的是使用搜索功能。

我通过调用searchCustomer与ID开始我:

partnerRef.internalId = searchCustomer(customerID); 

而对于searchCustomer代码:

private string searchCustomer(string CustomerID) 
     { 

      string InternalID = ""; 

      CustomerSearch custSearch = new CustomerSearch(); 
      CustomerSearchBasic custSearchBasic = new CustomerSearchBasic(); 

      String nameValue = CustomerID; 
      SearchStringField entityId = null; 

       entityId = new SearchStringField(); 
       [email protected] = SearchStringFieldOperator.contains; 
       entityId.operatorSpecified = true; 
       entityId.searchValue = nameValue; 
       custSearchBasic.entityId = entityId; 

      String statusKeysValue = ""; 
      SearchMultiSelectField status = null; 
      if (statusKeysValue != null && !statusKeysValue.Trim().Equals("")) 
      { 
       status = new SearchMultiSelectField(); 
       [email protected] = SearchMultiSelectFieldOperator.anyOf; 
       status.operatorSpecified = true; 
       string[] nskeys = statusKeysValue.Split(new Char[] { ',' }); 

       RecordRef[] recordRefs = new RecordRef[statusKeysValue.Length]; 
       for (int i = 0; i < nskeys.Length; i++) 
       { 
        RecordRef recordRef = new RecordRef(); 
        recordRef.internalId = nskeys[i]; 
        recordRefs[i] = recordRef; 
       } 
       status.searchValue = recordRefs; 
       custSearchBasic.entityStatus = status; 
      } 


      custSearch.basic = custSearchBasic; 

      SearchResult response = _service.search(custSearch); 

      if (response.status.isSuccess) 
      { 

       processCustomerSearchResponse(response); 




        if (seachMoreResult.status.isSuccess) 
        { 

         processCustomerSearchResponse(seachMoreResult); 

         return InternalID; 
        } 
        else 
        { 
         _out.error(getStatusDetails(seachMoreResult.status)); 

        } 

      } 
      else 
      { 
       _out.error(getStatusDetails(response.status)); 
      } 

      return InternalID; 
     } 

在上面processCustomerSearchResponse的代码被称为

processCustomerSearchResponse(response); 

的此功能的代码是:

public string processCustomerSearchResponse(SearchResult response) 
{ 
    string InternalID = ""; 
    Customer customer; 

     customer = (Customer)records[0]; 
     InternalID = customer.internalId; 

     return InternalID; 
} 

原始代码做的是在控制台中写入一些输出,但我想要返回InternalID。当我调试processCustomerSearchResponse中的应用程序InternalID包含我想要的ID时,但我不知道如何将它传递给searchCustomer,以便该函数也返回该ID。当我调试searchCustomer时,InternalID始终为空。我不知道如何编辑response.status.isSuccess 下的代码来返回InternalID,有什么想法?

在此先感谢。

回答

1

当您致电processCustomerSearchResponse(response);时,您需要将返回值存储在内存中。

尝试修改你这样的代码:

InternalID = processCustomerSearchResponse(response); 
+0

当然是的,感谢凯尔 – Morgan 2010-11-23 00:06:29