2010-11-22 4 views
0

Я загрузил пример приложения для использования некоторых веб-сервисов с онлайн-системой.Ошибка при возврате значения в 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. Когда я отлаживаю приложение InternalID в processCustomerSearchResponse, содержит ID, который я хочу, но я не знаю, как передать его поисковому клиенту, чтобы функция также возвращала идентификатор. При отладке searchCustomer InternalID всегда имеет значение null. Я не уверен, как отредактировать код под response.status.isSuccess , чтобы вернуть InternalID, какие-нибудь идеи?

Заранее спасибо.

ответ

1

Когда вы вызываете processCustomerSearchResponse(response);, вам необходимо сохранить возвращаемое значение в памяти.

Попробуйте изменить свой код так:

InternalID = processCustomerSearchResponse(response); 
+0

Да, конечно, спасибо Kyle – Morgan 2010-11-23 00:06:29

Смежные вопросы