【问题标题】:How to initialize arrays in web service client如何在 Web 服务客户端中初始化数组
【发布时间】: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# arrays web-services initialization webservice-client


【解决方案1】:

找到了这个链接,可以帮助您了解所有内容。

Dynamically Build an array in c#

我声明了我的数组,然后像示例一样创建了我放置在 for 循环中的新实例。 int 值 NoofGuests 是最有用的。就我而言,我使用了 NoofRates

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多