Как вызвать веб-сервис из другого WCF для возврата контракта данных, содержащего объект в качестве члена данных - PullRequest
0 голосов
/ 12 декабря 2011
/* SERVICE CONTRACT */
[ServiceContract]
public interface IEntity
{
[OperationContract]
CustomerDetail GetCustomer(string entityID);
//string GetCustomer(string entityID);
[OperationContract]
List<CustomerDetail> GetCustomerList(List<string> entityIDList);
}

/* DATA CONTRACT */
[DataContract]
public class CustomerDetail
{
[DataMember]
public Customer customerDetail; //Customer is defined in the webservice i'm calling
}

/* Actual service contract implementation */
public CustomerDetail GetCustomer(string ID)
{
ThirdParty tpws = new ThirdParty();
var c = tpws.GetCustomerByCustomerID(ID);
CustomerDetail cd = new CustomerDetail();
999         cd.customerDetail = c[0];
return cd;
}

Когда я запускаю это в VS2010 с точкой останова в строке, помеченной 999 выше, все работает хорошо, но при возврате не отображается ничего в тестовом клиенте WCF - возврат и ошибка - Произошла ошибка при получении ответа HTTP на .. .

Ответы [ 2 ]

0 голосов
/ 13 декабря 2011

Проверено ли, что тип «Customer» является сериализуемым (он декорирован с помощью DataContractAttribute, SerializableAttribute или аналогичным)?

0 голосов
/ 12 декабря 2011

Это всего лишь предположение, но остановитесь в отладчике перед строкой "999" и посмотрите, что в c.Могу поспорить, что c.Length == 0.

...