Я создаю объект COM Visible С# для прокси-вызовов в веб-сервисе для приложения VB6. У меня есть метод, который возвращает массив объектов.
public DocActionReport[] DocActionReportByDateRange(System.DateTime reportStartDate, System.DateTime reportEndDate)
{
object[] results = this.Invoke("DocActionReportByDateRange", new object[] {
reportStartDate,
reportEndDate});
return ((DocActionReport[])(results[0]));
}
Когда я вызываю этот метод через VB6, вот так:
Dim proxy As New QueueMovementServiceClient.ReadQueueInfo
Dim report() As QueueMovementServiceClient.DocActionReport
report = proxy.DocActionReportByDateRange(startDate, reportEndDate)
Он успешно выполняется (я вижу, что через ведение журнала в веб-службе), но данные не возвращаются объекту в VB6 (LBound (отчет) == 0, UBound (report) == -1).
Я попробовал несколько разных подходов (изменение метода на метод void и передача коллекции в качестве параметра ref
), но до сих пор не было радости.
Что мне нужно сделать, чтобы вернуть массив объектов (список, коллекция, что угодно) потребителю VB6?