【发布时间】:2012-04-04 09:11:43
【问题描述】:
这周我已经问过这个问题了,但我重新措辞一下,希望我能得到更清晰的答案。
我正在使用 Web 服务中的数组,并且在初始化 Web 服务中的数组以向该服务发送消息时遇到了困难。
任何有关如何处理的见解将不胜感激。
我的服务定义:
UpdateRatePackages.IService.InventoryServiceClient isc = new UpdateRatePackages.IService.InventoryServiceClient();
UpdateRatePackages.IService.UpdateRatePackagesRequest ureq = new UpdateRatePackages.IService.UpdateRatePackagesRequest();
UpdateRatePackages.IService.UpdateRatePackagesOperationResponse ores = new UpdateRatePackages.IService.UpdateRatePackagesOperationResponse();
为我尝试向其发送消息的服务定义的类
public class UpdateRatePackagesRequest
{
public string Username;
public string Password;
public UpdateRatePackageRequest[] RatePackages;
}
public class UpdateRatePackageRequest
{
public Int64 RatePackageId;
public RateDetails[] Rates;
}
public class RateDetails
{
public decimal Rate;
public enum RateApplicationType { SET, INCREASE, DECREASE, INCREASE_PERCENT, DECREASE_PERCENT } ;
public int Availability;
public enum AvailabilityApplicationType { SET , INCREASE, DECREASE };
public bool StopSell;
public string Inclusions;
public int MinimumNightStay;
public DateTime FromDate;
public DateTime ToDate;
}
public class UpdateRatePackageResult
{
public Int64 RatePackageId;
public Boolean Success;
public string Message;
}
public class UpdateRatePackagesResponse
{
public UpdateRatePackageResult[] Result;
}
我的代码中出现错误的部分:
Int64 HID = 717759;
Int64 HRID = 85264;
int avail = 6;
// RateDetails.AvailabilityApplicationType val = RateDetails.AvailabilityApplicationType.SET;
for (int i = 0; i < ureq.RatePackages.GetLength(0); i++)
{
ureq.RatePackages[i].RatePackageId = HRID;
for (int j = 0; j < ureq.RatePackages[j].Rates.GetLength(0); j++)
{
ureq.RatePackages[i].Rates[j].Availability = avail;
ureq.RatePackages[i].Rates[j].AvailabilityApplicationType = UpdateRatePackages.IService.AvailabilityApplicationType.SET;
ureq.RatePackages[i].Rates[j].FromDate = Convert.ToDateTime("2012-03-21");
ureq.RatePackages[i].Rates[j].ToDate = Convert.ToDateTime("2012-03-31");
}
// isc.UpdateRatePackages(request);
}
有错误的那一行:
for (int i = 0; i
错误信息:Object reference not set to an instance of an object.
【问题讨论】:
-
请不要在标题前加上“C#”之类的前缀。这就是标签的用途。
-
您看到的错误是什么?请参阅stackoverflow.com/a/4660186/76337,它会告诉你你做错了什么。
-
谢谢。我已经修改了问题并将错误消息粘贴到其中。
-
感谢您阅读!
标签: c# arrays web-services initialization webservice-client