c# - Web 服务中的数组 - 对象引用未设置为对象的实例

标签 c# arrays web-services initialization

我正在发送包含数组的 soap 消息。我的代码中存在数组问题。它给出了上述错误,我到处都看过,甚至一遍又一遍地编写和重写我的代码,但我似乎找不到哪里出错了。

如果有人能指出正确的方向,我将不胜感激:

UpdateRatePackages.IService.InventoryServiceClient isc = new UpdateRatePackages.IService.InventoryServiceClient();
    UpdateRatePackages.IService.UpdateRatePackagesRequest ureq = new UpdateRatePackages.IService.UpdateRatePackagesRequest();
    UpdateRatePackages.IService.UpdateRatePackagesOperationResponse ores = new UpdateRatePackages.IService.UpdateRatePackagesOperationResponse();

protected void Page_Load(object sender, EventArgs e) { SendSoapMessage();

protected void SendSoapMessage() {

        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);

        }

在网络服务中定义的数据:

     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;

    }

我的问题出在数组中还是与 soap 消息本身有关?

突出显示错误的行:

for (int i = 0; i < ureq.RatePackages.GetLength(0); i++)

请帮忙!

最佳答案

for (int i = 0; i < ureq.RatePackages.GetLength(0); i++)

如果错误发生在那里,则 ureqRatePackagesnull。在调试器中单步执行并查看哪个是 null。看起来您正在设置 ureq,但无论如何您都应该检查。

关于c# - Web 服务中的数组 - 对象引用未设置为对象的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9883024/

相关文章:

c# - 我怎样才能自动启动windows服务

javascript - 数组拼接 - Javascript

c - 如何跟踪某个循环的运行量并将值存储到数组中

javascript - Ajax 调用 Web 服务 - 方法成功但禁止数据访问

c# - 编码的 UI 测试生成器无法为记录的操作生成代码

c# - 枚举字母表的最快方法

c# - 您如何设置 .NET 开发树?

javascript - 按其中一个数组的前 3 个唯一值对数组进行切片

java - 使用 Java 访问 Web 服务

c# - 将数据客户端发布到服务器 C# 的最佳方式